X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fspecialise%2FSpecEnv.lhs;fp=ghc%2Fcompiler%2Fspecialise%2FSpecEnv.lhs;h=6efc6af98dc881ac3a7c1c83c0ceb26808aafed1;hb=f7ecf7234c224489be8a5e63fced903b655d92ee;hp=d7528b8c7fc9e710de7a26be890cf667d3fed5f7;hpb=12899612693163154531da3285ec99c1c8ca2226;p=ghc-hetmet.git diff --git a/ghc/compiler/specialise/SpecEnv.lhs b/ghc/compiler/specialise/SpecEnv.lhs index d7528b8..6efc6af 100644 --- a/ghc/compiler/specialise/SpecEnv.lhs +++ b/ghc/compiler/specialise/SpecEnv.lhs @@ -18,8 +18,19 @@ import MatchEnv import Type ( matchTys, isTyVarTy ) import Usage ( SYN_IE(UVar) ) import OccurAnal ( occurAnalyseGlobalExpr ) -import CoreSyn ( CoreExpr(..), SimplifiableCoreExpr(..) ) +import CoreSyn ( SYN_IE(CoreExpr), SYN_IE(SimplifiableCoreExpr) ) import Maybes ( MaybeErr(..) ) +--import PprStyle--ToDo:rm +--import Util(pprTrace)--ToDo:rm +--import Outputable--ToDo:rm +--import PprType--ToDo:rm +--import Pretty--ToDo:rm +--import PprCore--ToDo:rm +--import Id--ToDo:rm +--import TyVar--ToDo:rm +--import Unique--ToDo:rm +--import IdInfo--ToDo:rm +--import PprEnv--ToDo:rm \end{code} @@ -67,12 +78,14 @@ isNullSpecEnv (SpecEnv env) = null (mEnvToList env) addOneToSpecEnv :: SpecEnv -> [Type] -> CoreExpr -> MaybeErr SpecEnv ([Type], SimplifiableCoreExpr) addOneToSpecEnv (SpecEnv env) tys rhs - = case (insertMEnv matchTys env tys (occurAnalyseGlobalExpr rhs)) of + = --pprTrace "addOneToSpecEnv" (ppAbove (ppr PprDebug tys) (ppr PprDebug rhs)) $ + case (insertMEnv matchTys env tys (occurAnalyseGlobalExpr rhs)) of Succeeded menv -> Succeeded (SpecEnv menv) Failed err -> Failed err lookupSpecEnv :: SpecEnv -> [Type] -> Maybe (SimplifiableCoreExpr, ([(TyVar,Type)], [Type])) lookupSpecEnv (SpecEnv env) tys | all isTyVarTy tys = Nothing -- Short cut: no specialisation for simple tyvars - | otherwise = lookupMEnv matchTys env tys + | otherwise = --pprTrace "lookupSpecEnv" (ppr PprDebug tys) $ + lookupMEnv matchTys env tys \end{code}