X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FndpFlatten%2FFlattenMonad.hs;h=b8a2114ac0b721001e857ba9471d89ab286c80f6;hb=3a223cd2811d46295048b3a2dab11403ca291b20;hp=1a6955e26a6711c62488af96551820a276e6fdb3;hpb=10fcd78ccde892feccda3f5eacd221c1de75feea;p=ghc-hetmet.git diff --git a/ghc/compiler/ndpFlatten/FlattenMonad.hs b/ghc/compiler/ndpFlatten/FlattenMonad.hs index 1a6955e..b8a2114 100644 --- a/ghc/compiler/ndpFlatten/FlattenMonad.hs +++ b/ghc/compiler/ndpFlatten/FlattenMonad.hs @@ -64,7 +64,6 @@ module FlattenMonad ( import Monad (mplus) -- GHC -import CmdLineOpts (opt_Flatten) import Panic (panic) import Outputable (Outputable(ppr), pprPanic) import UniqSupply (UniqSupply, splitUniqSupply, uniqFromSupply) @@ -72,22 +71,22 @@ import OccName (UserFS) import Var (Var(..)) import Id (Id, mkSysLocal) import Name (Name) -import VarSet (VarSet, emptyVarSet, unitVarSet, extendVarSet, - varSetElems, unionVarSet) -import VarEnv (VarEnv, emptyVarEnv, unitVarEnv, zipVarEnv, plusVarEnv, +import VarSet (VarSet, emptyVarSet, extendVarSet, varSetElems ) +import VarEnv (VarEnv, emptyVarEnv, zipVarEnv, plusVarEnv, elemVarEnv, lookupVarEnv, lookupVarEnv_NF, delVarEnvList) import TyCon (tyConName) import Type (Type, tyConAppTyCon) -import HscTypes (HomeSymbolTable, PersistentCompilerState(..), +import HscTypes (HomePackageTable, PersistentCompilerState(pcs_EPS), + ExternalPackageState(eps_PTE), HscEnv(hsc_HPT), TyThing(..), lookupType) import PrelNames (charPrimTyConName, intPrimTyConName, floatPrimTyConName, doublePrimTyConName, fstName, andName, orName, - eqCharName, eqIntName, eqFloatName, eqDoubleName, - neqCharName, neqIntName, neqFloatName, neqDoubleName, lengthPName, replicatePName, mapPName, bpermutePName, bpermuteDftPName, indexOfPName) -import CoreSyn (Expr(..), Bind(..), CoreBndr, CoreExpr, CoreBind, mkApps, - bindersOfBinds) +import PrimOp (eqCharName, eqIntName, eqFloatName, eqDoubleName, + neqIntName) + -- neqCharName, neqFloatName,neqDoubleName, +import CoreSyn (Expr(..), Bind(..), CoreBndr, CoreExpr, CoreBind, mkApps) import CoreUtils (exprType) -- friends @@ -132,10 +131,10 @@ data FlattenState = FlattenState { -- initial value of the flattening state -- initialFlattenState :: PersistentCompilerState - -> HomeSymbolTable + -> HomePackageTable -> UniqSupply -> FlattenState -initialFlattenState pcs hst us = +initialFlattenState pcs hpt us = FlattenState { us = us, env = lookup, @@ -145,7 +144,7 @@ initialFlattenState pcs hst us = } where lookup n = - case lookupType hst (pcs_PTE pcs) n of + case lookupType hpt (eps_PTE (pcs_EPS pcs)) n of Just (AnId v) -> v _ -> pprPanic "FlattenMonad: unknown name:" (ppr n) @@ -164,12 +163,13 @@ instance Monad Flatten where -- execute the given flattening computation (EXPORTED) -- -runFlatten :: PersistentCompilerState - -> HomeSymbolTable +runFlatten :: HscEnv + -> PersistentCompilerState -> UniqSupply -> Flatten a -> a -runFlatten pcs hst us m = fst $ unFlatten m (initialFlattenState pcs hst us) +runFlatten hsc_env pcs us m + = fst $ unFlatten m (initialFlattenState pcs (hsc_HPT hsc_env) us) -- variable generation @@ -384,10 +384,10 @@ mk'neq ty a1 a2 = mkFunApp neqName [a1, a2] where name = tyConName . tyConAppTyCon $ ty -- - neqName | name == charPrimTyConName = neqCharName + neqName {- | name == charPrimTyConName = neqCharName -} | name == intPrimTyConName = neqIntName - | name == floatPrimTyConName = neqFloatName - | name == doublePrimTyConName = neqDoubleName + {- | name == floatPrimTyConName = neqFloatName -} + {- | name == doublePrimTyConName = neqDoubleName -} | otherwise = pprPanic "FlattenMonad.mk'neq: " (ppr ty)