summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonm <unknown>1999-03-22 16:57:11 +0000
committersimonm <unknown>1999-03-22 16:57:11 +0000
commit80cbfd10627e589e6f2862e8f1d979b5eca58c2b (patch)
treea7229aa939d309fe699559ae9676803f0d81c52c
parentbe7e6f4b77b852f830952754d914377c550ffe19 (diff)
downloadhaskell-80cbfd10627e589e6f2862e8f1d979b5eca58c2b.tar.gz
[project @ 1999-03-22 16:57:10 by simonm]
Previous commit broke let-no-escape. Fix it up again.
-rw-r--r--ghc/compiler/codeGen/CgCase.lhs5
-rw-r--r--ghc/compiler/codeGen/CgExpr.lhs5
2 files changed, 6 insertions, 4 deletions
diff --git a/ghc/compiler/codeGen/CgCase.lhs b/ghc/compiler/codeGen/CgCase.lhs
index 23733c4598..99eb1ab89e 100644
--- a/ghc/compiler/codeGen/CgCase.lhs
+++ b/ghc/compiler/codeGen/CgCase.lhs
@@ -1,7 +1,7 @@
%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgCase.lhs,v 1.24 1999/03/22 12:59:32 simonm Exp $
+% $Id: CgCase.lhs,v 1.25 1999/03/22 16:57:10 simonm Exp $
%
%********************************************************
%* *
@@ -10,7 +10,8 @@
%********************************************************
\begin{code}
-module CgCase ( cgCase, saveVolatileVarsAndRegs, restoreCurrentCostCentre,
+module CgCase ( cgCase, saveVolatileVarsAndRegs,
+ restoreCurrentCostCentre, freeCostCentreSlot,
splitTyConAppThroughNewTypes ) where
#include "HsVersions.h"
diff --git a/ghc/compiler/codeGen/CgExpr.lhs b/ghc/compiler/codeGen/CgExpr.lhs
index 9dbe3a2212..2f4106404b 100644
--- a/ghc/compiler/codeGen/CgExpr.lhs
+++ b/ghc/compiler/codeGen/CgExpr.lhs
@@ -1,7 +1,7 @@
%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgExpr.lhs,v 1.20 1999/03/11 11:32:26 simonm Exp $
+% $Id: CgExpr.lhs,v 1.21 1999/03/22 16:57:11 simonm Exp $
%
%********************************************************
%* *
@@ -24,7 +24,7 @@ import CLabel ( mkClosureTblLabel )
import SMRep ( fixedHdrSize )
import CgBindery ( getArgAmodes, CgIdInfo, nukeDeadBindings )
import CgCase ( cgCase, saveVolatileVarsAndRegs,
- restoreCurrentCostCentre,
+ restoreCurrentCostCentre, freeCostCentreSlot,
splitTyConAppThroughNewTypes )
import CgClosure ( cgRhsClosure, cgStdRhsClosure )
import CgCon ( buildDynCon, cgReturnDataCon )
@@ -207,6 +207,7 @@ cgExpr (StgLetNoEscape live_in_whole_let live_in_rhss bindings body)
saveVolatileVarsAndRegs live_in_rhss
`thenFC` \ (save_assts, rhs_eob_info, maybe_cc_slot) ->
-- ToDo: cost centre???
+ freeCostCentreSlot maybe_cc_slot `thenC`
restoreCurrentCostCentre maybe_cc_slot `thenFC` \ restore_cc ->
-- Save those variables right now!