import CmdLineOpts ( DynFlags, DynFlag(..), dopt )
import CoreSyn
import CoreUtils ( exprIsValue, exprIsDupable )
-import CoreLint ( beginPass, endPass )
+import CoreLint ( showPass, endPass )
import CoreFVs ( CoreExprWithFVs, freeVars, freeVarsOf )
import Id ( isOneShotLambda )
import Var ( Id, idType, isTyVar )
floatInwards dflags binds
= do {
- beginPass dflags "Float inwards";
+ showPass dflags "Float inwards";
let { binds' = map fi_top_bind binds };
- endPass dflags "Float inwards"
- (dopt Opt_D_verbose_core2core dflags)
+ endPass dflags "Float inwards" Opt_D_verbose_core2core binds'
{- no specific flag for dumping float-in -}
- binds'
}
where
fiExpr to_drop (_, AnnNote note@(Coerce _ _) expr)
= -- Just float in past coercion
Note note (fiExpr to_drop expr)
-
-fiExpr to_drop (_, AnnNote note@(TermUsg _) expr)
- = -- Float in past term usage annotation
- -- (for now; not sure if this is correct: KSW 1999-05)
- Note note (fiExpr to_drop expr)
\end{code}
For @Lets@, the possible ``drop points'' for the \tr{to_drop}