projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git]
/
ghc
/
compiler
/
coreSyn
/
FreeVars.lhs
diff --git
a/ghc/compiler/coreSyn/FreeVars.lhs
b/ghc/compiler/coreSyn/FreeVars.lhs
index
8703b34
..
979fd67
100644
(file)
--- a/
ghc/compiler/coreSyn/FreeVars.lhs
+++ b/
ghc/compiler/coreSyn/FreeVars.lhs
@@
-13,14
+13,14
@@
module FreeVars (
addTopBindsFVs,
freeVarsOf, freeTyVarsOf,
addTopBindsFVs,
freeVarsOf, freeTyVarsOf,
- FVCoreExpr(..), FVCoreBinding(..),
+ SYN_IE(FVCoreExpr), SYN_IE(FVCoreBinding),
- CoreExprWithFVs(..), -- For the above functions
- AnnCoreExpr(..), -- Dito
+ SYN_IE(CoreExprWithFVs), -- For the above functions
+ SYN_IE(AnnCoreExpr), -- Dito
FVInfo(..), LeakInfo(..)
) where
FVInfo(..), LeakInfo(..)
) where
-import Ubiq{-uitous-}
+IMP_Ubiq(){-uitous-}
import AnnCoreSyn -- output
import AnnCoreSyn -- output
@@
-28,17
+28,17
@@
import CoreSyn
import Id ( idType, getIdArity, isBottomingId,
emptyIdSet, unitIdSet, mkIdSet,
elementOfIdSet, minusIdSet, unionManyIdSets,
import Id ( idType, getIdArity, isBottomingId,
emptyIdSet, unitIdSet, mkIdSet,
elementOfIdSet, minusIdSet, unionManyIdSets,
- IdSet(..)
+ SYN_IE(IdSet)
)
import IdInfo ( arityMaybe )
import PrimOp ( PrimOp(..) )
import Type ( tyVarsOfType )
import TyVar ( emptyTyVarSet, unitTyVarSet, minusTyVarSet,
intersectTyVarSets,
)
import IdInfo ( arityMaybe )
import PrimOp ( PrimOp(..) )
import Type ( tyVarsOfType )
import TyVar ( emptyTyVarSet, unitTyVarSet, minusTyVarSet,
intersectTyVarSets,
- TyVarSet(..)
+ SYN_IE(TyVarSet)
)
import UniqSet ( unionUniqSets )
)
import UniqSet ( unionUniqSets )
-import Usage ( UVar(..) )
+import Usage ( SYN_IE(UVar) )
import Util ( panic, assertPanic )
\end{code}
import Util ( panic, assertPanic )
\end{code}
@@
-295,6
+295,15
@@
fvExpr id_cands tyvar_cands (SCC label expr)
= (fvinfo, AnnSCC label expr2)
where
expr2@(fvinfo,_) = fvExpr id_cands tyvar_cands expr
= (fvinfo, AnnSCC label expr2)
where
expr2@(fvinfo,_) = fvExpr id_cands tyvar_cands expr
+
+fvExpr id_cands tyvar_cands (Coerce c ty expr)
+ = (FVInfo (freeVarsOf expr2)
+ (freeTyVarsOf expr2 `combine` tfvs)
+ (leakinessOf expr2),
+ AnnCoerce c ty expr2)
+ where
+ expr2 = fvExpr id_cands tyvar_cands expr
+ tfvs = freeTy tyvar_cands ty
\end{code}
\begin{code}
\end{code}
\begin{code}
@@
-477,6
+486,11
@@
addExprFVs fv_cand in_scope (SCC label expr)
= (SCC label expr2, expr_fvs)
where
(expr2, expr_fvs) = addExprFVs fv_cand in_scope expr
= (SCC label expr2, expr_fvs)
where
(expr2, expr_fvs) = addExprFVs fv_cand in_scope expr
+
+addExprFVs fv_cand in_scope (Coerce c ty expr)
+ = (Coerce c ty expr2, expr_fvs)
+ where
+ (expr2, expr_fvs) = addExprFVs fv_cand in_scope expr
\end{code}
\begin{code}
\end{code}
\begin{code}