Add PrimCall to the STG layer and update Core -> STG translation
[ghc-hetmet.git] / compiler / codeGen / ClosureInfo.lhs
index bc7dfec..8c36ab2 100644 (file)
@@ -260,7 +260,7 @@ mkLFReEntrant top fvs args arg_descr
 
 mkLFThunk :: Type -> TopLevelFlag -> [Var] -> UpdateFlag -> LambdaFormInfo
 mkLFThunk thunk_ty top fvs upd_flag
-  = ASSERT( not (isUpdatable upd_flag) || not (isUnLiftedType thunk_ty) )
+  = ASSERT2( not (isUpdatable upd_flag) || not (isUnLiftedType thunk_ty), ppr thunk_ty $$ ppr fvs )
     LFThunk top (null fvs) 
            (isUpdatable upd_flag)
            NonStandardThunk 
@@ -598,6 +598,10 @@ getCallMethod _ name caf (LFReEntrant _ arity _ _) n_args
   | otherwise      = DirectEntry (enterIdLabel name caf) arity
 
 getCallMethod _ _ _ (LFCon con) n_args
+  | opt_SccProfilingOn     -- when profiling, we must always enter
+  = EnterIt                -- a closure when we use it, so that the closure
+                           -- can be recorded as used for LDV profiling.
+  | otherwise
   = ASSERT( n_args == 0 )
     ReturnCon con