1 Breaks the IdInfo/<everything> loops.
6 import PreludePS ( _PackedString )
7 import PreludeStdIO ( Maybe )
9 import BinderInfo ( BinderInfo )
10 import CoreSyn ( CoreExpr(..), GenCoreExpr, GenCoreArg )
11 import CoreUnfold ( Unfolding(..), UnfoldingGuidance(..),
12 SimpleUnfolding(..), FormSummary(..), noUnfolding )
13 import CoreUtils ( unTagBinders )
14 import Id ( externallyVisibleId, isDataCon, isWorkerId, isWrapperId,
15 unfoldingUnfriendlyId, getIdInfo, nmbrId,
16 nullIdEnv, lookupIdEnv, IdEnv(..),
19 import CostCentre ( CostCentre )
20 import IdInfo ( IdInfo )
21 import SpecEnv ( SpecEnv, nullSpecEnv, isNullSpecEnv )
22 import Literal ( Literal )
23 import MagicUFs ( mkMagicUnfoldingFun, MagicUnfoldingFun )
24 import OccurAnal ( occurAnalyseGlobalExpr )
25 import Outputable ( Outputable(..) )
26 import PprEnv ( NmbrEnv )
27 import PprStyle ( PprStyle )
28 import PprType ( pprParendGenType )
29 import Pretty ( PrettyRep )
30 import Type ( GenType )
31 import TyVar ( GenTyVar )
32 import UniqFM ( UniqFM )
33 import Unique ( Unique )
34 import Usage ( GenUsage )
35 import Util ( Ord3(..) )
36 import WwLib ( mAX_WORKER_ARGS )
37 import StdIdInfo ( addStandardIdInfo ) -- Used in Id, but StdIdInfo needs lots of stuff from Id
39 addStandardIdInfo :: Id -> Id
41 nullSpecEnv :: SpecEnv
42 isNullSpecEnv :: SpecEnv -> Bool
44 -- occurAnalyseGlobalExpr :: GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenTyVar (GenUsage Unique)) Unique -> GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique), BinderInfo) (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenTyVar (GenUsage Unique)) Unique
45 -- unTagBinders :: GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique), a) b c d -> GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) b c d
47 externallyVisibleId :: Id -> Bool
48 isDataCon :: GenId ty -> Bool
49 isWorkerId :: GenId ty -> Bool
50 isWrapperId :: Id -> Bool
51 unfoldingUnfriendlyId :: Id -> Bool
52 getIdInfo :: Id -> IdInfo
54 lookupIdEnv :: UniqFM b -> GenId a -> Maybe b
55 mAX_WORKER_ARGS :: Int
56 nmbrId :: Id -> NmbrEnv -> (NmbrEnv, Id)
57 pprParendGenType :: (Eq a, Outputable a, Eq b, Outputable b) => PprStyle -> GenType a b -> Int -> Bool -> PrettyRep
58 mkMagicUnfoldingFun :: Unique -> MagicUnfoldingFun
60 type IdEnv a = UniqFM a
61 type CoreExpr = GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique))
62 (GenId (GenType (GenTyVar (GenUsage Unique)) Unique))
63 (GenTyVar (GenUsage Unique)) Unique
65 instance Outputable UnfoldingGuidance
67 instance Outputable Unique
68 instance Eq (GenTyVar a)
69 instance Ord3 (GenTyVar a)
70 instance Outputable (GenTyVar a)
71 instance (Outputable a) => Outputable (GenId a)
72 instance (Eq a, Outputable a, Eq b, Outputable b) => Outputable (GenType a b)
76 data MagicUnfoldingFun
77 data FormSummary = VarForm | ValueForm | BottomForm | OtherForm
81 -- | CoreUnfolding SimpleUnfolding
82 -- | MagicUnfolding Unique MagicUnfoldingFun
85 noUnfolding :: Unfolding
87 -- data SimpleUnfolding = SimpleUnfolding FormSummary UnfoldingGuidance (GenCoreExpr (GenId (GenType (GenTyVar (GenUsage Unique)) Unique), BinderInfo) (GenId (GenType (GenTyVar (GenUsage Unique)) Unique)) (GenTyVar (GenUsage Unique)) Unique)
90 data UnfoldingGuidance
93 | UnfoldIfGoodArgs Int Int [Bool] Int