Safe Haskell | None |
---|
Compiler stages.
A compiler stage is a sequence of standard transformations. Each of the individual transformations are expressed as a pipeline from DDC.Build.Pipeline. The stages here run several pipelines each, and contain the code that can dump the intermediate program after each transformation.
- data Config = Config {
- configDump :: Bool
- configSimplLite :: Simplifier Int () Name
- configSimplSalt :: Simplifier Int () Name
- configViaBackend :: ViaBackend
- configRuntime :: Config
- configBuilder :: Builder
- configSuppressCoreImports :: Bool
- configSuppressHashImports :: Bool
- configOutputFile :: Maybe FilePath
- configOutputDir :: Maybe FilePath
- configKeepLlvmFiles :: Bool
- configKeepSeaFiles :: Bool
- configKeepAsmFiles :: Bool
- data ViaBackend
- stageLiteLoad :: Config -> Source -> [PipeCore () Name] -> PipeText Name Error
- stageLiteOpt :: Config -> Source -> [PipeCore () Name] -> PipeCore () Name
- stageLiteToSalt :: Config -> Source -> [PipeCore () Name] -> PipeCore () Name
- stageSaltOpt :: Config -> Source -> [PipeCore () Name] -> PipeCore () Name
- stageSaltToC :: Config -> Source -> Sink -> PipeCore () Name
- stageSaltToLLVM :: Config -> Source -> [PipeLlvm] -> PipeCore () Name
- stageCompileSalt :: Config -> Source -> FilePath -> Bool -> PipeCore () Name
- stageCompileLLVM :: Config -> Source -> FilePath -> Bool -> PipeLlvm
Documentation
Configuration for main compiler stages.
Config | |
|
data ViaBackend Source
Lite stages
stageLiteLoad :: Config -> Source -> [PipeCore () Name] -> PipeText Name ErrorSource
Type check Core Lite.
stageLiteToSalt :: Config -> Source -> [PipeCore () Name] -> PipeCore () NameSource
Convert Core Lite to Core Salt.
Salt stages
stageSaltToLLVM :: Config -> Source -> [PipeLlvm] -> PipeCore () NameSource
Convert Core Salt to LLVM.
:: Config | |
-> Source | |
-> FilePath | Path of original source file. Build products are placed into the same dir. |
-> Bool | Should we link this into an executable |
-> PipeCore () Name |
Compile Core Salt via C code.