HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduleghc-9.10.3GHC2021

GHC.Driver.Pipeline.Execute

  • 1 type
  • 30 values
  • Packageghc-9.10.3
  • Exports31
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceExecute.hs
newtypenewtype HookedUse a
#

Constructors

Instances7Monad, Functor, Applicative, MonadIO, MonadCatch, MonadThrow, …
valuerunPhase :: TPhase out -> IO out
#

Default interpretation of each phase, in terms of IO.

Computes the next output filename for something in the compilation pipeline. This is controlled by several variables:

  1. Phase: the last phase to be run (e.g. stopPhase). This is used to tell if we're in the last phase or not, because in that case flags like -o may be important.

  2. PipelineOutput: is this intended to be a Temporary or Persistent build output? Temporary files just go in a fresh temporary name.

  3. String: what was the basename of the original input file?

  4. DynFlags: the obvious thing

  5. Phase: the phase we want to determine the output filename of.

  6. Maybe ModLocation: the ModLocation of the module we're compiling; this can be used to override the default output of an object file. (TODO: do we actually need this?)

valuellvmOptions
  1. :: LlvmConfig
  2. -> DynFlags
  3. -> [(String, String)]

    pairs of (opt, llc) arguments

#

LLVM Options. These are flags to be passed to opt and llc, to ensure consistency we list them in pairs, so that they form groups.