diff options
Diffstat (limited to 'compiler/GHC/Core/Opt')
-rw-r--r-- | compiler/GHC/Core/Opt/FloatIn.hs | 14 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/Monad.hs | 29 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/Pipeline.hs | 42 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/Simplify.hs | 1 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/SpecConstr.hs | 2 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/Specialise.hs | 41 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/WorkWrap.hs | 1 |
7 files changed, 81 insertions, 49 deletions
diff --git a/compiler/GHC/Core/Opt/FloatIn.hs b/compiler/GHC/Core/Opt/FloatIn.hs index d539e4f386..bc98f764c7 100644 --- a/compiler/GHC/Core/Opt/FloatIn.hs +++ b/compiler/GHC/Core/Opt/FloatIn.hs @@ -23,20 +23,24 @@ module GHC.Core.Opt.FloatIn ( floatInwards ) where import GHC.Prelude import GHC.Platform +import GHC.Driver.Session + import GHC.Core import GHC.Core.Make hiding ( wrapFloats ) -import GHC.Driver.Types ( ModGuts(..) ) import GHC.Core.Utils import GHC.Core.FVs -import GHC.Core.Opt.Monad ( CoreM ) +import GHC.Core.Opt.Monad ( CoreM ) +import GHC.Core.Type + +import GHC.Types.Basic ( RecFlag(..), isRec ) import GHC.Types.Id ( isOneShotBndr, idType, isJoinId, isJoinId_maybe ) import GHC.Types.Var -import GHC.Core.Type import GHC.Types.Var.Set + +import GHC.Unit.Module.ModGuts + import GHC.Utils.Misc -import GHC.Driver.Session import GHC.Utils.Panic -import GHC.Types.Basic ( RecFlag(..), isRec ) {- Top-level interface function, @floatInwards@. Note that we do not diff --git a/compiler/GHC/Core/Opt/Monad.hs b/compiler/GHC/Core/Opt/Monad.hs index e7298fef54..c535c24638 100644 --- a/compiler/GHC/Core/Opt/Monad.hs +++ b/compiler/GHC/Core/Opt/Monad.hs @@ -50,27 +50,34 @@ module GHC.Core.Opt.Monad ( import GHC.Prelude hiding ( read ) +import GHC.Driver.Session +import GHC.Driver.Env + import GHC.Core import GHC.Core.Unfold -import GHC.Driver.Types -import GHC.Unit.Module -import GHC.Driver.Session + import GHC.Types.Basic ( CompilerPhase(..) ) import GHC.Types.Annotations - -import GHC.Data.IOEnv hiding ( liftIO, failM, failWithM ) -import qualified GHC.Data.IOEnv as IOEnv import GHC.Types.Var -import GHC.Utils.Outputable as Outputable -import GHC.Data.FastString -import GHC.Utils.Error( Severity(..), DumpFormat (..), dumpOptionsFromFlag ) import GHC.Types.Unique (uniqFromMask) import GHC.Types.Unique.Supply -import GHC.Utils.Monad import GHC.Types.Name.Env import GHC.Types.SrcLoc -import Data.Bifunctor ( bimap ) + +import GHC.Utils.Outputable as Outputable +import GHC.Utils.Error( Severity(..), DumpFormat (..), dumpOptionsFromFlag ) +import GHC.Utils.Monad import GHC.Utils.Error (dumpAction) + +import GHC.Data.FastString +import GHC.Data.IOEnv hiding ( liftIO, failM, failWithM ) +import qualified GHC.Data.IOEnv as IOEnv + +import GHC.Unit.Module +import GHC.Unit.Module.ModGuts +import GHC.Unit.External + +import Data.Bifunctor ( bimap ) import Data.List (intersperse, groupBy, sortBy) import Data.Ord import Data.Dynamic diff --git a/compiler/GHC/Core/Opt/Pipeline.hs b/compiler/GHC/Core/Opt/Pipeline.hs index 3e9470dc88..041fdf3a29 100644 --- a/compiler/GHC/Core/Opt/Pipeline.hs +++ b/compiler/GHC/Core/Opt/Pipeline.hs @@ -14,15 +14,16 @@ import GHC.Prelude import GHC.Driver.Session import GHC.Driver.Ppr +import GHC.Driver.Plugins ( withPlugins, installCoreToDos ) +import GHC.Driver.Env + import GHC.Core -import GHC.Driver.Types import GHC.Core.Opt.CSE ( cseProgram ) import GHC.Core.Rules ( mkRuleBase, unionRuleBase, extendRuleBaseList, ruleCheckProgram, addRuleInfo, getRules, initRuleOpts ) import GHC.Core.Ppr ( pprCoreBindings, pprCoreExpr ) import GHC.Core.Opt.OccurAnal ( occurAnalysePgm, occurAnalyseExpr ) -import GHC.Types.Id.Info import GHC.Core.Stats ( coreBindsSize, coreBindsStats, exprSize ) import GHC.Core.Utils ( mkTicks, stripTicksTop, dumpIdInfoOfProgram ) import GHC.Core.Lint ( endPass, lintPassResult, dumpPassResult, @@ -32,16 +33,8 @@ import GHC.Core.Opt.Simplify.Utils ( simplEnvForGHCi, activeRule, activeUnfoldin import GHC.Core.Opt.Simplify.Env import GHC.Core.Opt.Simplify.Monad import GHC.Core.Opt.Monad -import qualified GHC.Utils.Error as Err -import GHC.Core.Opt.FloatIn ( floatInwards ) -import GHC.Core.Opt.FloatOut ( floatOutwards ) -import GHC.Core.FamInstEnv -import GHC.Types.Id -import GHC.Utils.Error ( withTiming, withTimingD, DumpFormat (..) ) -import GHC.Types.Basic -import GHC.Types.Var.Set -import GHC.Types.Var.Env -import GHC.Types.Demand +import GHC.Core.Opt.FloatIn ( floatInwards ) +import GHC.Core.Opt.FloatOut ( floatOutwards ) import GHC.Core.Opt.LiberateCase ( liberateCase ) import GHC.Core.Opt.StaticArgs ( doStaticArgs ) import GHC.Core.Opt.Specialise ( specProgram) @@ -52,16 +45,33 @@ import GHC.Core.Opt.CallArity ( callArityAnalProgram ) import GHC.Core.Opt.Exitify ( exitifyProgram ) import GHC.Core.Opt.WorkWrap ( wwTopBinds ) import GHC.Core.Seq (seqBinds) -import GHC.Types.SrcLoc +import GHC.Core.FamInstEnv + +import qualified GHC.Utils.Error as Err +import GHC.Utils.Error ( withTiming, withTimingD, DumpFormat (..) ) import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + +import GHC.Unit.External import GHC.Unit.Module.Env -import GHC.Driver.Plugins ( withPlugins, installCoreToDos ) +import GHC.Unit.Module.ModGuts +import GHC.Unit.Module.Deps + import GHC.Runtime.Loader -- ( initializePlugins ) +import GHC.Runtime.Context +import GHC.Types.SrcLoc +import GHC.Types.Id +import GHC.Types.Id.Info +import GHC.Types.Basic +import GHC.Types.Var.Set +import GHC.Types.Var.Env +import GHC.Types.Demand import GHC.Types.Unique.Supply ( UniqSupply, mkSplitUniqSupply, splitUniqSupply ) import GHC.Types.Unique.FM -import GHC.Utils.Outputable -import GHC.Utils.Panic +import GHC.Types.Name.Ppr + import Control.Monad import qualified GHC.LanguageExtensions as LangExt {- diff --git a/compiler/GHC/Core/Opt/Simplify.hs b/compiler/GHC/Core/Opt/Simplify.hs index 4ba4b0a797..42cc081498 100644 --- a/compiler/GHC/Core/Opt/Simplify.hs +++ b/compiler/GHC/Core/Opt/Simplify.hs @@ -25,6 +25,7 @@ import GHC.Core.Opt.Simplify.Utils import GHC.Core.Opt.OccurAnal ( occurAnalyseExpr ) import GHC.Core.FamInstEnv ( FamInstEnv ) import GHC.Types.Literal ( litIsLifted ) --, mkLitInt ) -- temporalily commented out. See #8326 +import GHC.Types.SourceText import GHC.Types.Id import GHC.Types.Id.Make ( seqId ) import GHC.Core.Make ( FloatBind, mkImpossibleExpr, castBottomExpr ) diff --git a/compiler/GHC/Core/Opt/SpecConstr.hs b/compiler/GHC/Core/Opt/SpecConstr.hs index ab36ad8f22..d3ee317234 100644 --- a/compiler/GHC/Core/Opt/SpecConstr.hs +++ b/compiler/GHC/Core/Opt/SpecConstr.hs @@ -25,7 +25,7 @@ import GHC.Core.Unfold import GHC.Core.FVs ( exprsFreeVarsList ) import GHC.Core.Opt.Monad import GHC.Types.Literal ( litIsLifted ) -import GHC.Driver.Types ( ModGuts(..) ) +import GHC.Unit.Module.ModGuts import GHC.Core.Opt.WorkWrap.Utils ( isWorkerSmallEnough, mkWorkerArgs ) import GHC.Core.DataCon import GHC.Core.Coercion hiding( substCo ) diff --git a/compiler/GHC/Core/Opt/Specialise.hs b/compiler/GHC/Core/Opt/Specialise.hs index 14a1e0cda9..2fa9e9b18c 100644 --- a/compiler/GHC/Core/Opt/Specialise.hs +++ b/compiler/GHC/Core/Opt/Specialise.hs @@ -14,44 +14,53 @@ module GHC.Core.Opt.Specialise ( specProgram, specUnfolding ) where import GHC.Prelude -import GHC.Types.Id +import GHC.Driver.Session +import GHC.Driver.Ppr +import GHC.Driver.Config +import GHC.Driver.Env + import GHC.Tc.Utils.TcType hiding( substTy ) + import GHC.Core.Type hiding( substTy, extendTvSubstList ) import GHC.Core.Multiplicity import GHC.Core.Predicate -import GHC.Unit.Module( Module ) import GHC.Core.Coercion( Coercion ) import GHC.Core.Opt.Monad import qualified GHC.Core.Subst as Core import GHC.Core.Unfold.Make -import GHC.Types.Var ( isLocalVar ) -import GHC.Types.Var.Set -import GHC.Types.Var.Env import GHC.Core import GHC.Core.Rules import GHC.Core.Utils ( exprIsTrivial, getIdFromTrivialExpr_maybe , mkCast, exprType ) import GHC.Core.FVs +import GHC.Core.TyCo.Rep (TyCoBinder (..)) import GHC.Core.Opt.Arity ( collectBindersPushingCo , etaExpandToJoinPointRule ) + +import GHC.Builtin.Types ( unboxedUnitTy ) + +import GHC.Data.Maybe ( mapMaybe, maybeToList, isJust ) +import GHC.Data.Bag +import GHC.Data.FastString + +import GHC.Types.Basic import GHC.Types.Unique.Supply +import GHC.Types.Unique.DFM import GHC.Types.Name import GHC.Types.Id.Make ( voidArgId, voidPrimId ) -import GHC.Builtin.Types ( unboxedUnitTy ) -import GHC.Data.Maybe ( mapMaybe, maybeToList, isJust ) +import GHC.Types.Var ( isLocalVar ) +import GHC.Types.Var.Set +import GHC.Types.Var.Env +import GHC.Types.Id + import GHC.Utils.Monad ( foldlM ) -import GHC.Types.Basic -import GHC.Driver.Types -import GHC.Data.Bag -import GHC.Driver.Session -import GHC.Driver.Ppr -import GHC.Driver.Config import GHC.Utils.Misc import GHC.Utils.Outputable import GHC.Utils.Panic -import GHC.Data.FastString -import GHC.Types.Unique.DFM -import GHC.Core.TyCo.Rep (TyCoBinder (..)) + +import GHC.Unit.Module( Module ) +import GHC.Unit.Module.ModGuts +import GHC.Unit.External {- ************************************************************************ diff --git a/compiler/GHC/Core/Opt/WorkWrap.hs b/compiler/GHC/Core/Opt/WorkWrap.hs index 4994875772..842a4981d1 100644 --- a/compiler/GHC/Core/Opt/WorkWrap.hs +++ b/compiler/GHC/Core/Opt/WorkWrap.hs @@ -26,6 +26,7 @@ import GHC.Driver.Ppr import GHC.Driver.Config import GHC.Types.Demand import GHC.Types.Cpr +import GHC.Types.SourceText import GHC.Core.Opt.WorkWrap.Utils import GHC.Utils.Misc import GHC.Utils.Outputable |