projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2004-11-26 16:19:45 by simonmar]
[ghc-hetmet.git]
/
ghc
/
compiler
/
stgSyn
/
StgSyn.lhs
diff --git
a/ghc/compiler/stgSyn/StgSyn.lhs
b/ghc/compiler/stgSyn/StgSyn.lhs
index
b9f3671
..
9c1c546
100644
(file)
--- a/
ghc/compiler/stgSyn/StgSyn.lhs
+++ b/
ghc/compiler/stgSyn/StgSyn.lhs
@@
-30,12
+30,12
@@
module StgSyn (
StgOp(..),
-- SRTs
StgOp(..),
-- SRTs
- SRT(..), noSRT, nonEmptySRT,
+ SRT(..),
-- utils
-- utils
- stgBindHasCafRefs, stgArgHasCafRefs, stgRhsArity, getArgPrimRep,
- isLitLitArg, isDllConApp, isStgTypeArg,
- stgArgType, stgBinders,
+ stgBindHasCafRefs, stgArgHasCafRefs, stgRhsArity,
+ isDllConApp, isStgTypeArg,
+ stgArgType,
pprStgBinding, pprStgBindings, pprStgBindingsWithSRTs
pprStgBinding, pprStgBindings, pprStgBindingsWithSRTs
@@
-49,13
+49,14
@@
module StgSyn (
import CostCentre ( CostCentreStack, CostCentre )
import VarSet ( IdSet, isEmptyVarSet )
import Var ( isId )
import CostCentre ( CostCentreStack, CostCentre )
import VarSet ( IdSet, isEmptyVarSet )
import Var ( isId )
-import Id ( Id, idName, idPrimRep, idType, idCafInfo )
+import Id ( Id, idName, idType, idCafInfo )
import IdInfo ( mayHaveCafRefs )
import IdInfo ( mayHaveCafRefs )
-import Name ( isDllName )
-import Literal ( Literal, literalType, isLitLitLit, literalPrimRep )
+import Packages ( isDllName )
+import Literal ( Literal, literalType )
import ForeignCall ( ForeignCall )
import DataCon ( DataCon, dataConName )
import CoreSyn ( AltCon )
import ForeignCall ( ForeignCall )
import DataCon ( DataCon, dataConName )
import CoreSyn ( AltCon )
+import PprCore ( {- instances -} )
import PrimOp ( PrimOp )
import Outputable
import Util ( count )
import PrimOp ( PrimOp )
import Outputable
import Util ( count )
@@
-64,7
+65,7
@@
import TyCon ( TyCon )
import UniqSet ( isEmptyUniqSet, uniqSetToList, UniqSet )
import Unique ( Unique )
import Bitmap
import UniqSet ( isEmptyUniqSet, uniqSetToList, UniqSet )
import Unique ( Unique )
import Bitmap
-import CmdLineOpts ( opt_SccProfilingOn )
+import CmdLineOpts ( DynFlags, opt_SccProfilingOn )
\end{code}
%************************************************************************
\end{code}
%************************************************************************
@@
-84,10
+85,6
@@
There is one SRT for each group of bindings.
data GenStgBinding bndr occ
= StgNonRec bndr (GenStgRhs bndr occ)
| StgRec [(bndr, GenStgRhs bndr occ)]
data GenStgBinding bndr occ
= StgNonRec bndr (GenStgRhs bndr occ)
| StgRec [(bndr, GenStgRhs bndr occ)]
-
-stgBinders :: GenStgBinding bndr occ -> [bndr]
-stgBinders (StgNonRec b _) = [b]
-stgBinders (StgRec bs) = map fst bs
\end{code}
%************************************************************************
\end{code}
%************************************************************************
@@
-104,26
+101,21
@@
data GenStgArg occ
\end{code}
\begin{code}
\end{code}
\begin{code}
-getArgPrimRep (StgVarArg local) = idPrimRep local
-getArgPrimRep (StgLitArg lit) = literalPrimRep lit
-
-isLitLitArg (StgLitArg lit) = isLitLitLit lit
-isLitLitArg _ = False
-
isStgTypeArg (StgTypeArg _) = True
isStgTypeArg other = False
isStgTypeArg (StgTypeArg _) = True
isStgTypeArg other = False
-isDllArg :: StgArg -> Bool
+isDllArg :: DynFlags -> StgArg -> Bool
-- Does this argument refer to something in a different DLL?
-- Does this argument refer to something in a different DLL?
-isDllArg (StgTypeArg v) = False
-isDllArg (StgVarArg v) = isDllName (idName v)
-isDllArg (StgLitArg lit) = isLitLitLit lit
+isDllArg dflags (StgTypeArg v) = False
+isDllArg dflags (StgVarArg v) = isDllName dflags (idName v)
+isDllArg dflags (StgLitArg lit) = False
-isDllConApp :: DataCon -> [StgArg] -> Bool
+isDllConApp :: DynFlags -> DataCon -> [StgArg] -> Bool
-- Does this constructor application refer to
-- anything in a different DLL?
-- If so, we can't allocate it statically
-- Does this constructor application refer to
-- anything in a different DLL?
-- If so, we can't allocate it statically
-isDllConApp con args = isDllName (dataConName con) || any isDllArg args
+isDllConApp dflags con args
+ = isDllName dflags (dataConName con) || any (isDllArg dflags) args
stgArgType :: StgArg -> Type
-- Very half baked becase we have lost the type arguments
stgArgType :: StgArg -> Type
-- Very half baked becase we have lost the type arguments