X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fcompiler%2FcodeGen%2FCgLetNoEscape.lhs;h=3748ddd657564877fba3971849860dd2d8395408;hb=e7498a3ee1d0484d02a9e86633cc179c76ebf36e;hp=f59ef4eb7cffe65e128ab4b8d01ea181ce7a245d;hpb=30cf375e0bc79a6b71074a5e0fd2ec393241a751;p=ghc-hetmet.git diff --git a/ghc/compiler/codeGen/CgLetNoEscape.lhs b/ghc/compiler/codeGen/CgLetNoEscape.lhs index f59ef4e..3748ddd 100644 --- a/ghc/compiler/codeGen/CgLetNoEscape.lhs +++ b/ghc/compiler/codeGen/CgLetNoEscape.lhs @@ -12,8 +12,8 @@ module CgLetNoEscape ( cgLetNoEscapeClosure ) where -import Ubiq{-uitious-} -import CgLoop2 ( cgExpr ) +IMP_Ubiq(){-uitious-} +IMPORT_DELOOPER(CgLoop2) ( cgExpr ) import StgSyn import CgMonad @@ -169,9 +169,9 @@ cgLetNoEscapeBody :: [Id] -- Args cgLetNoEscapeBody all_args rhs = getVirtSps `thenFC` \ (vA, vB) -> let - arg_kinds = map idPrimRep all_args - (arg_regs, _) = assignRegs [{-nothing live-}] arg_kinds - stk_args = drop (length arg_regs) all_args + arg_kinds = map idPrimRep all_args + (arg_regs, _) = assignRegs [{-nothing live-}] arg_kinds + (reg_args, stk_args) = splitAt (length arg_regs) all_args -- stk_args is the args which are passed on the stack at the fast-entry point -- Using them, we define the stack layout @@ -183,7 +183,7 @@ cgLetNoEscapeBody all_args rhs in -- Bind args to appropriate regs/stk locns - bindArgsToRegs all_args arg_regs `thenC` + bindArgsToRegs reg_args arg_regs `thenC` mapCs bindNewToAStack stk_bxd_w_offsets `thenC` mapCs bindNewToBStack stk_ubxd_w_offsets `thenC` setRealAndVirtualSps spA_stk_args spB_stk_args `thenC`