module Vectorise( vectorise )
where
-import VectType
+import Vectorise.Type.Env
+import Vectorise.Type.Type
+import Vectorise.Convert
import Vectorise.Utils.Hoisting
import Vectorise.Exp
import Vectorise.Vect
import HscTypes hiding ( MonadThings(..) )
import Module ( PackageId )
import CoreSyn
-import CoreUnfold ( mkInlineRule )
+import CoreUnfold ( mkInlineUnfolding )
import CoreFVs
import CoreMonad ( CoreM, getHscEnv )
import FamInstEnv ( extendFamInstEnvList )
vty <- vectType (idType var)
-- Make the vectorised version of binding's name, and set the unfolding used for inlining.
- var' <- liftM (`setIdUnfolding` unfolding)
+ var' <- liftM (`setIdUnfoldingLazily` unfolding)
$ cloneId mkVectOcc var vty
-- Add the mapping between the plain and vectorised name to the state.
return var'
where
unfolding = case inline of
- Inline arity -> mkInlineRule expr (Just arity)
+ Inline arity -> mkInlineUnfolding (Just arity) expr
DontInline -> noUnfolding