Core pass to saturate constructors and PrimOps
\begin{code}
+{-# OPTIONS_GHC -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings
+-- for details
+
module CorePrep (
corePrepPgm, corePrepExpr
) where
import VarSet
import VarEnv
import Id
+import IdInfo
import DataCon
import PrimOp
import BasicTypes
deLamFloat expr1 `thenUs` \ (floats, expr2) ->
returnUs (floats, Note n expr2)
+corePrepExprFloat env (Case (Var id) bndr ty [(DEFAULT,[],expr)])
+ | Just (TickBox {}) <- isTickBoxOp_maybe id
+ = corePrepAnExpr env expr `thenUs` \ expr1 ->
+ deLamFloat expr1 `thenUs` \ (floats, expr2) ->
+ return (floats, Case (Var id) bndr ty [(DEFAULT,[],expr2)])
+
corePrepExprFloat env (Note other_note expr)
= corePrepExprFloat env expr `thenUs` \ (floats, expr') ->
returnUs (floats, Note other_note expr')