1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface NewOccurAnal where
3 import BasicLit(BasicLit)
4 import BinderInfo(BinderInfo, DuplicationDanger, FunOrArg, InsideSCC)
5 import CmdLineOpts(GlobalSwitch, SimplifierSwitch)
6 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
7 import CostCentre(CostCentre)
9 import PlainCore(PlainCoreExpr(..), PlainCoreProgram(..))
10 import PrimOps(PrimOp)
11 import TaggedCore(SimplifiableCoreBinding(..), SimplifiableCoreExpr(..))
13 import UniType(UniType)
20 type PlainCoreExpr = CoreExpr Id Id
21 type PlainCoreProgram = [CoreBinding Id Id]
22 type SimplifiableCoreBinding = CoreBinding (Id, BinderInfo) Id
23 type SimplifiableCoreExpr = CoreExpr (Id, BinderInfo) Id
24 newOccurAnalyseBinds :: [CoreBinding Id Id] -> (GlobalSwitch -> Bool) -> (SimplifierSwitch -> Bool) -> [CoreBinding (Id, BinderInfo) Id]
25 newOccurAnalyseExpr :: UniqFM Id -> CoreExpr Id Id -> (UniqFM BinderInfo, CoreExpr (Id, BinderInfo) Id)