GHC.Driver.Pipeline.Phases

ghc-9.14.0.20251028: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.Driver.Pipeline.Phases

Synopsis

- data TPhase res where
  - T_Unlit :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_FileArgs :: HscEnv -> FilePath -> TPhase (DynFlags, Messages PsMessage, Messages DriverMessage)
  - T_Cpp :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_HsPp :: PipeEnv -> HscEnv -> FilePath -> FilePath -> TPhase [Char]
  - T_HscRecomp :: PipeEnv -> HscEnv -> FilePath -> HscSource -> TPhase (HscEnv, ModSummary, HscRecompStatus)
  - T_Hsc :: HscEnv -> ModSummary -> TPhase (FrontendResult, Messages GhcMessage)
  - T_HscPostTc :: HscEnv -> ModSummary -> FrontendResult -> Messages GhcMessage -> Maybe Fingerprint -> TPhase HscBackendAction
  - T_HscBackend :: PipeEnv -> HscEnv -> ModuleName -> HscSource -> ModLocation -> HscBackendAction -> TPhase ([FilePath], ModIface, HomeModLinkable, FilePath)
  - T_CmmCpp :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_Cmm :: PipeEnv -> HscEnv -> FilePath -> TPhase ([FilePath], FilePath)
  - T_Cc :: Phase -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char]
  - T_As :: Bool -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char]
  - T_Js :: PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char]
  - T_ForeignJs :: PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char]
  - T_LlvmOpt :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_LlvmLlc :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_LlvmAs :: Bool -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char]
  - T_LlvmMangle :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char]
  - T_MergeForeign :: PipeEnv -> HscEnv -> FilePath -> [FilePath] -> TPhase [Char]
- data PhaseHook = PhaseHook (forall a. TPhase a -> IO a)

# Documentation

data TPhase res where Source #

Constructors

T_Unlit :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_FileArgs :: HscEnv -> FilePath -> TPhase (DynFlags, Messages PsMessage, Messages DriverMessage) |
T_Cpp :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_HsPp :: PipeEnv -> HscEnv -> FilePath -> FilePath -> TPhase [Char] |
T_HscRecomp :: PipeEnv -> HscEnv -> FilePath -> HscSource -> TPhase (HscEnv, ModSummary, HscRecompStatus) |
T_Hsc :: HscEnv -> ModSummary -> TPhase (FrontendResult, Messages GhcMessage) |
T_HscPostTc :: HscEnv -> ModSummary -> FrontendResult -> Messages GhcMessage -> Maybe Fingerprint -> TPhase HscBackendAction |
T_HscBackend :: PipeEnv -> HscEnv -> ModuleName -> HscSource -> ModLocation -> HscBackendAction -> TPhase ([FilePath], ModIface, HomeModLinkable, FilePath) |
T_CmmCpp :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_Cmm :: PipeEnv -> HscEnv -> FilePath -> TPhase ([FilePath], FilePath) |
T_Cc :: Phase -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char] |
T_As :: Bool -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char] |
T_Js :: PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char] |
T_ForeignJs :: PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char] |
T_LlvmOpt :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_LlvmLlc :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_LlvmAs :: Bool -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase [Char] |
T_LlvmMangle :: PipeEnv -> HscEnv -> FilePath -> TPhase [Char] |
T_MergeForeign :: PipeEnv -> HscEnv -> FilePath -> [FilePath] -> TPhase [Char] |

#### Instances

Instances details

MonadUse TPhase HookedUse Source # |
Instance details Defined in GHC.Driver.Pipeline.Execute Methods use :: TPhase a -> HookedUse a Source #

data PhaseHook Source #

A wrapper around the interpretation function for phases.

Constructors

PhaseHook (forall a. TPhase a -> IO a) |