X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2FcodeGen%2FCgLetNoEscape.lhs;h=3913a99ef0001116721c4eda00e6c1207daabe84;hb=29d909009d47c52c5f02630658f7422c634230ab;hp=ffec5709bbc4fb3f6519b903aa2e40e749df7e59;hpb=49ea1fa53acd2569b0b74c86a981b0d3779515dd;p=ghc-hetmet.git diff --git a/compiler/codeGen/CgLetNoEscape.lhs b/compiler/codeGen/CgLetNoEscape.lhs index ffec570..3913a99 100644 --- a/compiler/codeGen/CgLetNoEscape.lhs +++ b/compiler/codeGen/CgLetNoEscape.lhs @@ -1,8 +1,7 @@ % +% (c) The University of Glasgow 2006 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998 % -% $Id: CgLetNoEscape.lhs,v 1.26 2004/09/30 10:35:47 simonpj Exp $ -% %******************************************************** %* * \section[CgLetNoEscape]{Handling ``let-no-escapes''} @@ -19,21 +18,20 @@ import {-# SOURCE #-} CgExpr ( cgExpr ) import StgSyn import CgMonad -import CgBindery ( CgIdInfo, letNoEscapeIdInfo, nukeDeadBindings ) -import CgCase ( restoreCurrentCostCentre ) -import CgCon ( bindUnboxedTupleComponents ) -import CgHeapery ( unbxTupleHeapCheck ) -import CgInfoTbls ( emitDirectReturnTarget ) -import CgStackery ( allocStackTop, deAllocStackTop, getSpRelOffset ) -import Cmm ( CmmStmt(..) ) -import CmmUtils ( mkLblExpr, oneStmt ) -import CLabel ( mkReturnInfoLabel ) -import ClosureInfo ( mkLFLetNoEscape ) -import CostCentre ( CostCentreStack ) -import Id ( Id, idName ) -import Var ( idUnique ) -import SMRep ( retAddrSizeW ) -import BasicTypes ( RecFlag(..) ) +import CgBindery +import CgCase +import CgCon +import CgHeapery +import CgInfoTbls +import CgStackery +import Cmm +import CmmUtils +import CLabel +import ClosureInfo +import CostCentre +import Var +import SMRep +import BasicTypes \end{code} %************************************************************************ @@ -138,7 +136,6 @@ cgLetNoEscapeClosure :: Id -- binder -> CostCentreStack -- NB: *** NOT USED *** ToDo (WDP 94/06) -> StgBinderInfo -- NB: ditto - -> SRT -> StgLiveVars -- variables live in RHS, including the binders -- themselves in the case of a recursive group -> EndOfBlockInfo -- where are we going to? @@ -151,7 +148,7 @@ cgLetNoEscapeClosure -- ToDo: deal with the cost-centre issues cgLetNoEscapeClosure - bndr cc binder_info srt full_live_in_rhss + bndr cc binder_info full_live_in_rhss rhs_eob_info cc_slot rec args body = let arity = length args @@ -170,7 +167,7 @@ cgLetNoEscapeClosure -- Ignore the label that comes back from -- mkRetDirectTarget. It must be conjured up elswhere - ; emitDirectReturnTarget (idName bndr) abs_c srt + ; emitReturnTarget (idName bndr) abs_c ; return () }) ; returnFC (bndr, letNoEscapeIdInfo bndr vSp lf_info) }