import CgMonad
import AbsCUtils ( mkAbsCStmts, mkAbstractCs, magicIdPrimRep )
-import CgCompInfo ( uF_UPDATEE )
+import Constants ( uF_UPDATEE )
import CgHeapery ( heapCheck, allocDynClosure )
-import CgRetConv ( mkLiveRegsMask,
- dataReturnConvAlg, ctrlReturnConvAlg,
+import CgRetConv ( dataReturnConvAlg, ctrlReturnConvAlg,
CtrlReturnConvention(..),
DataReturnConvention(..)
)
import ClosureInfo ( layOutStaticClosure, layOutDynCon,
layOutPhantomClosure, closurePtrsSize,
fitsMinUpdSize, mkConLFInfo,
- infoTableLabelFromCI, dataConLiveness
+ infoTableLabelFromCI, dataConLiveness,
+ ClosureInfo
)
-import CostCentre ( dontCareCostCentre )
-import FiniteMap ( fmToList )
-import HeapOffs ( zeroOff, VirtualHeapOffset(..) )
+import CostCentre ( dontCareCostCentre, CostCentre )
+import FiniteMap ( fmToList, FiniteMap )
+import HeapOffs ( zeroOff, SYN_IE(VirtualHeapOffset) )
import Id ( dataConTag, dataConRawArgTys,
- dataConArity, fIRST_TAG,
+ dataConNumFields, fIRST_TAG,
emptyIdSet,
- GenId{-instance NamedThing-}
+ GenId{-instance NamedThing-}, SYN_IE(Id)
)
-import Name ( getLocalName )
+import Name ( getOccString )
import PrelInfo ( maybeIntLikeTyCon )
import PrimRep ( getPrimRepSize, PrimRep(..) )
-import TyCon ( tyConDataCons, mkSpecTyCon )
-import Type ( typePrimRep )
+import TyCon ( tyConDataCons, mkSpecTyCon, TyCon )
+import Type ( typePrimRep, SYN_IE(Type) )
import Util ( panic )
mkSameSpecCon = panic "CgConTbls.mkSameSpecCon (ToDo)"
body_code))
entry_addr = CLbl entry_label CodePtrRep
- con_descr = _UNPK_ (getLocalName data_con)
+ con_descr = getOccString data_con
closure_code = CClosureInfoAndCode closure_info body Nothing
stdUpd con_descr
zero_size arg_ty = getPrimRepSize (typePrimRep arg_ty) == 0
arg_tys = dataConRawArgTys data_con
- con_arity = dataConArity data_con
entry_label = mkConEntryLabel data_con
closure_label = mkStaticClosureLabel data_con
\end{code}
phantom_ci = layOutPhantomClosure data_con (mkConLFInfo data_con)
- con_descr = _UNPK_ (getLocalName data_con)
+ con_descr = getOccString data_con
- con_arity = dataConArity data_con
+ con_arity = dataConNumFields data_con
upd_code = CLabelledCode upd_label (mkAbsCStmts build_closure perform_return)
upd_label = mkConUpdCodePtrVecLabel tycon tag