import TysWiredIn
import PrelRules
import Type
-import TypeRep
import Coercion
import TcType
import CoreUtils ( exprType, mkCoerce )
import Class
import VarSet
import Name
-import OccName
import PrimOp
import ForeignCall
import DataCon
import NewDemand
import CoreSyn
import Unique
-import Maybes
import PrelNames
import BasicTypes hiding ( SuccessFlag(..) )
import Util
import Bitmap
import CLabel
import Cmm hiding (blockId)
-import CmmExpr
import CmmInfo
import CmmProcPointZ
import CmmStackLayout
import Monad
import Name
import Outputable
-import Panic
import SMRep
import StgCmmClosure
import StgCmmForeign
import Unique
import Monad
-import IO
-import Data.List
-----------------------------------------------------------------------------
-- |Top level driver for the CPS pass
import StaticFlags
import Unique
import Maybe
-import List
import FastString
import Panic
import Constants
import StaticFlags (opt_Unregisterised)
import Outputable
-import Panic
-- Calculate the 'GlobalReg' or stack locations for function call
-- parameters as used by the Cmm calling convention.
import BlockId
import Cmm
-import CmmExpr
import MkZipCfgCmm hiding (CmmGraph)
import ZipCfgCmmRep -- imported for reverse conversion
import CmmZipUtil
import FastString
import Monad
import Outputable
-import Panic
import UniqSupply
-import Maybe
-
cmmToZgraph :: GenCmm d h (ListGraph CmmStmt) -> UniqSM (GenCmm d h (CmmStackInfo, CmmGraph))
cmmOfZgraph :: GenCmm d h (CmmStackInfo, CmmGraph) -> GenCmm d h (ListGraph CmmStmt)
import CLabel
import Cmm hiding (blockId)
import CmmContFlowOpt
-import CmmExpr
import CmmInfo
import CmmLiveZ
import CmmTx
import MkZipCfgCmm hiding (CmmBlock, CmmGraph, CmmTopZ)
import Monad
import Outputable
-import Panic
import UniqSet
import UniqSupply
import ZipCfg
import CmmLiveZ
import DFMonad
import MkZipCfg
-import OptimizationFuel
import PprCmm()
import ZipCfg
import ZipCfgCmmRep
import Monad
import Outputable hiding (empty)
import qualified Outputable as PP
-import Panic
import UniqSet
import Maybe
import MkZipCfgCmm hiding (CmmBlock, CmmGraph)
import Monad
import Outputable
-import Panic
import SMRep (ByteOff)
import ZipCfg
import ZipCfg as Z
import PprCmm()
import OptimizationFuel
-import Control.Monad
import Maybes
import Outputable
import UniqSupply
import BlockId
import Cmm
-import CmmExpr
import PprCmm
import Outputable
import qualified ZipCfgCmmRep as G
import Maybes
import Outputable
-import Panic
import Control.Monad
-import Maybe
{-
import Util
import FastString
import StaticFlags
-
-import Control.Monad
\end{code}
import Unique
import StaticFlags
-import Maybes
import Constants
import Util
import Outputable
import ClosureInfo
import CostCentre
import Id
-import Var
import SMRep
import BasicTypes
\end{code}
import Constants -- Lots of field offsets
import Outputable
-import Data.Maybe
import Data.Char
import Control.Monad
import CostCentre
import Id
import Name
-import OccName
import TyCon
import Module
import ErrUtils
import Type
import DataCon
import Name
-import OccName
import TyCon
import Module
import ErrUtils
import FastString
import Maybes
-import Data.List
-
------------------------------------------------------------------------
-- Top-level bindings
------------------------------------------------------------------------
import IdInfo
import DataCon
import Name
-import OccName
import Type
import TypeRep
import TcType
import PprCmm ( {- instance Outputable -} )
import Id
import VarEnv
-import Maybes
import Monad
import Name
import StgSyn
import Outputable
import FastString( LitString, mkFastString, sLit )
import Constants
-import Data.List
-----------------------------------------------------------
import Bitmap
import Data.Bits
-import Maybes
import Constants
import Util
import Data.List
import Constants -- Lots of field offsets
import Outputable
-import Data.Maybe
import Data.Char
import Control.Monad
import StgCmmClosure
import BlockId
import Cmm
-import CmmExpr
import MkZipCfgCmm
import CLabel
import CmmUtils
import DynFlags
import StaticFlags ( opt_NoStateHack )
import FastString
-import Maybes
-
-import GHC.Exts -- For `xori`
\end{code}
%************************************************************************
import VarEnv
import UniqFM
import Name hiding (tidyNameOcc)
-import OccName
import SrcLoc
import Maybes
import PrelNames
import Type
-import TypeRep
import TysPrim ( alphaTyVar )
import DataCon ( DataCon, dataConWorkId )
import Data.Array
import Data.Maybe
-import System.IO (FilePath)
import System.Directory ( createDirectoryIfMissing )
import Trace.Hpc.Mix
import VarSet
import Rules
import VarEnv
-import Type
import Outputable
import SrcLoc
import Maybes
import CoreUtils
import MkCore
import Var
-import Id
import MkId
import Maybes
import ForeignCall
import NameEnv
#ifdef GHCI
-import PrelNames
-- Template Haskell stuff iff bootstrapped
import DsMeta
#endif
import {-# SOURCE #-} DsExpr ( dsExpr )
import MatchLit
-import DsUtils
import DsMonad
import qualified Language.Haskell.TH as TH
import UniqSupply
import Name
import NameEnv
-import OccName
import DynFlags
import ErrUtils
-import MonadUtils
import FastString
import Data.IORef
import DsBinds
import DataCon
import TcType
-import Type
import CoreSyn
import MkCore
import DsMonad
import DataCon
import TcHsSyn ( shortCutLit )
import TcType
-import Type
import PrelNames
import TysWiredIn
-import Unique
import Literal
import SrcLoc
import Ratio
import Constants
import FastString
import SMRep
-import FiniteMap
import Outputable
import Control.Monad ( foldM )
import Data.Array.Base ( UArray(..) )
import Data.Array.ST ( castSTUArray )
import Foreign
-import Data.Bits
-import Data.Int ( Int64 )
import Data.Char ( ord )
import GHC.Base ( ByteArray#, MutableByteArray#, RealWorld )
-import GHC.Ptr ( Ptr(..) )
-
-#if __GLASGOW_HASKELL__ >= 611
-import GHC.IO ( IO(..) )
-#else
-import GHC.IOBase ( IO(..) )
-#endif
-- -----------------------------------------------------------------------------
-- Unlinked BCOs
import DynFlags
import BasicTypes
import Outputable
-import PackageConfig
import Panic
import Util
import StaticFlags
import ErrUtils
-import DriverPhases
import SrcLoc
import qualified Maybes
import UniqSet
import Type ( Type )
import Outputable
import FastString
-import Ratio ( Rational )
\end{code}
import IfaceSyn
import Module
import Name
-import OccName
import VarEnv
-import InstEnv
import Class
import DynFlags
import UniqFM
import VarSet
import BasicTypes
import Name
-import OccName
import MkId
import Class
import TyCon
import TcRnMonad
import Util ( count )
import Outputable
-
-import Data.List
\end{code}
import DataCon
import Var
import Name
-import OccName
import PrelNames
import Module
import LazyUniqFM
import BasicTypes hiding (SuccessFlag(..))
import TcRnMonad
-import Type
import PrelNames
import PrelInfo
import FamInstEnv
import Name
import NameEnv
-import MkId
import Module
-import OccName
import Maybes
import ErrUtils
import Finder
import Fingerprint
import Control.Monad
-import Data.List
-import Data.Maybe
\end{code}
#include "HsVersions.h"
import IfaceSyn
-import IfaceType
import LoadIface
import Id
import IdInfo
import RdrName
import NameEnv
import NameSet
-import OccName
import Module
import BinIface
import ErrUtils
import Binary
import Fingerprint
import Bag
-import Panic
import Control.Monad
import Data.List
import VarEnv
import Name
import NameEnv
-import OccName
import Module
import LazyUniqFM
import UniqSupply
import Control.Monad
import Data.List
-import Data.Maybe
\end{code}
This module takes
import Module
import Maybes ( firstJust )
-import Distribution.Text
import Directory ( doesFileExist )
import Monad ( when )
import IO
import Distribution.Package hiding (PackageId)
import Data.IORef ( IORef, writeIORef, readIORef, modifyIORef )
-import Data.List
import System.Directory
import System.FilePath
-import System.IO
import Control.Monad
import System.Time ( ClockTime )
import Linker ( HValue )
import ByteCodeInstr
import BreakArray
-import NameSet
import InteractiveEval
import TcRnDriver
#endif
import Name
import NameEnv
import NameSet
-import OccName ( OccName, OccEnv, lookupOccEnv, mkOccEnv, emptyOccEnv,
- extendOccEnv )
import Module
import InstEnv ( InstEnv, Instance )
import FamInstEnv ( FamInstEnv, FamInst )
import DynFlags ( DynFlags(..), isOneShot, HscTarget (..), dopt,
DynFlag(..) )
import DriverPhases ( HscSource(..), isHsBoot, hscSourceString, Phase )
-import BasicTypes ( IPName, Fixity, defaultFixity, WarningTxt(..) )
+import BasicTypes ( IPName, defaultFixity, WarningTxt(..) )
import OptimizationFuel ( OptFuelState )
import IfaceSyn
import FiniteMap ( FiniteMap )
import GHC ( TyThing(..) )
import TyCon
-import Type ( TyThing(..), tidyTopType, pprTypeApp )
import TcType
import Var
import Name
import System.IO.Error as IO
import System.Directory
import Data.Char
-import Data.Maybe
import Data.List
#ifndef mingw32_HOST_OS
import NameSet
import IfaceEnv
import NameEnv
-import OccName
import TcType
import DataCon
import TyCon
import FastBool hiding ( fastOr )
import Data.List ( partition )
-import Data.Maybe ( isJust )
import Data.IORef ( IORef, readIORef, writeIORef )
\end{code}
import Outputable
import Unique
-import Panic
import RegClass
import Data.List
import UniqSet
import UniqSupply
-import Control.Monad
import Data.List
-- | Do register coalescing on this top level thing
where
import qualified GraphColor as Color
-import qualified GraphBase as Color
import RegAlloc.Liveness
import RegAlloc.Graph.Spill
import RegAlloc.Graph.SpillClean
import Outputable
import Data.List
-import Data.Maybe
-- | Spill all these virtual regs to memory
import Outputable
import Util
-import Data.Maybe
import Data.List ( find, nub )
--
import Data.List (nub, minimumBy)
import Data.Maybe
-import Control.Monad
type SpillCostRecord
= ( VirtualReg -- register name
import Data.Word
import Data.Bits
-import Data.List
type FreeRegs
= Word32
import FastBool
import Outputable
-import GHC.Exts
-
-- | Register or immediate
data RI
import Constants (rESERVED_C_STACK_BYTES)
import CLabel
-import Panic
-- Size of a PPC memory address, in bytes.
--
module HaddockUtils where
import HsSyn
-import HsDoc
import {-# SOURCE #-} HaddockLex
import HaddockParse
import SrcLoc
import RdrName
import Control.Monad
-import Data.Maybe
import Data.Char
-import Data.Either
-- -----------------------------------------------------------------------------
-- Parsing module headers
import PrelNames ( mkUnboundName, rOOT_MAIN, iNTERACTIVE,
consDataConKey, hasKey, forall_tv_RDR )
import UniqSupply
-import BasicTypes ( IPName, mapIPName, Fixity )
+import BasicTypes
import ErrUtils ( Message )
import SrcLoc
import Outputable
import FastString
import List ( unzip4 )
-import Control.Monad
\end{code}
module RnHsDoc ( rnHaddock, rnHsDoc, rnLHsDoc, rnMbLHsDoc ) where
import TcRnTypes
-import TcRnMonad ( RnM )
import RnEnv ( dataTcOccs, lookupGreRn_maybe )
import HsSyn
import BasicTypes ( Boxity(..) )
import ListSetOps (findDupsEq)
-import List
import Control.Monad
\end{code}
import Outputable
import qualified ErrUtils as Err
-import MonadUtils
import Maybes
import UniqSupply
import Data.IORef
import Data.Word
import Control.Monad
-import Control.Applicative
import Prelude hiding ( read )
import CoreSyn
import CoreUtils
import Type
-import TcType
import Id
import Name
-import OccName
import VarEnv
import UniqSupply
import Util
import CoreFVs -- all of it
import CoreSubst ( Subst, emptySubst, extendInScope, extendIdSubst,
cloneIdBndr, cloneRecIdBndrs )
-import Id ( Id, idType, mkSysLocal, isOneShotLambda,
+import Id ( idType, mkSysLocal, isOneShotLambda,
zapDemandIdInfo, transferPolyIdInfo,
idSpecialisation, idWorkerInfo, setIdInfo
)
import Outputable
-import List
-
import Util
\end{code}
import VarEnv
import VarSet
import Name
-import OccName ( mkSpecOcc )
import DynFlags ( DynFlags(..) )
import StaticFlags ( opt_PprStyle_Debug )
import StaticFlags ( opt_SpecInlineJoinPoints )
import ErrUtils ( Message, mkLocMessage )
import TypeRep
import Type ( mkFunTys, splitFunTys, splitTyConApp_maybe,
- isUnLiftedType, isTyVarTy, dropForAlls, Type
+ isUnLiftedType, isTyVarTy, dropForAlls
)
import TyCon ( isAlgTyCon, isNewTyCon, tyConDataCons )
import Util ( zipEqual, equalLength )
import CoreUtils ( exprType, exprIsHNF, mkInlineMe )
import CoreArity ( exprArity )
import Var
-import Id ( Id, idType, isOneShotLambda, idUnfolding,
- setIdNewStrictness, mkWorkerId,
- setIdWorkerInfo, setInlineActivation,
- setIdArity, idInfo )
+import Id
import Type ( Type )
import IdInfo
import NewDemand ( Demand(..), StrictSig(..), DmdType(..), DmdResult(..),
import Type
import Coercion ( mkSymCoercion, splitNewTypeRepCo_maybe )
import BasicTypes ( Boxity(..) )
-import Var ( Var, isId )
+import Var ( Var )
import UniqSupply
import Unique
import Util ( zipWithEqual )
import TcPat
import TcMType
import TcType
-import {- Kind parts of -} Type
import Coercion
import VarEnv
import TysPrim
import ErrUtils
import Digraph
import Maybes
-import List
import Util
import BasicTypes
import Outputable
import Class
import Name
import NameEnv
-import OccName
import HscTypes
import SrcLoc
import Outputable
-import Maybes
import Unique
import FastString
\end{code}
import Literal
import BasicTypes
import Maybes
-import Unique
import SrcLoc
import Util
import Bag
import TyCon
import Class
import Name
-import OccName
import NameSet
import PrelNames
import TysWiredIn
import UniqSupply
import Outputable
import FastString
-
-import Control.Monad
\end{code}
import TcUnify
import TcHsType
import TysWiredIn
-import Type
import Coercion
import StaticFlags
import TyCon
import SrcLoc
import ErrUtils
import Util
-import Maybes
import Outputable
import FastString
import Monad
import SrcLoc
import NameEnv
import NameSet
-import OccName
import Bag
import Outputable
import UniqSupply
import ListSetOps
import FastString
-import Data.Maybe
-import Data.List
import Data.Set (Set)
\end{code}
import FunDeps
import PrelInfo
import PrelNames
-import Type
import TysWiredIn
import ErrUtils
import BasicTypes
import FiniteMap
import Bag
import Outputable
-import Maybes
import ListSetOps
import Util
import SrcLoc
import Outputable
import SrcLoc ( Located(..) )
import Maybes
-import MonadUtils
import FastString
-- standard
import Maybes
import Util
import FastString
-
-import Maybe
\end{code}
import HsSyn
import Type
-import TcHsSyn
import TcType
import DataCon
import TyCon
import Name
-import OccName
import RdrName
import BasicTypes
import Var
#else
import Data.Generics
#endif
-import Data.Typeable
-- | Represents a serialized value of a particular type. Attempts can be made to deserialize it at certain types
import Id
import Name
import NameEnv
-import IOEnv ( liftIO )
import DsMonad
import CoreSyn
import CoreUtils
import CoreFVs
-import CoreMonad ( CoreM, getHscEnv, liftIO )
+import CoreMonad ( CoreM, getHscEnv )
import DataCon
import TyCon
import Type
import Id
import OccName
-import DsMonad
-
import Literal ( Literal, mkMachInt )
import TysWiredIn