summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/Opt
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Core/Opt')
-rw-r--r--compiler/GHC/Core/Opt/FloatIn.hs14
-rw-r--r--compiler/GHC/Core/Opt/Monad.hs29
-rw-r--r--compiler/GHC/Core/Opt/Pipeline.hs42
-rw-r--r--compiler/GHC/Core/Opt/Simplify.hs1
-rw-r--r--compiler/GHC/Core/Opt/SpecConstr.hs2
-rw-r--r--compiler/GHC/Core/Opt/Specialise.hs41
-rw-r--r--compiler/GHC/Core/Opt/WorkWrap.hs1
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