Changes between Version 8 and Version 9 of Commentary/Compiler/Backends/LLVM/Design


Ignore:
Timestamp:
Feb 17, 2011 5:29:44 PM (4 years ago)
Author:
dterei
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/Backends/LLVM/Design

    v8 v9  
    88  * LLVM code generation will output LLVM assembly code. 
    99  * The LLVM assembly code is translated to an object file as follows 
    10      * First, there is an '!LlvmAs' phase which generates LLVM bitcode from LLVM assembly code (using the {{{llvm-as}}} tool).  
    1110     * The LLVM optimizer is run which is a series of bitcode to bitcode optimization passes (using the {{{llc}}} tool). 
    1211     * Finally an object file is created from the LLVM bitcode (using the {{{llc}}} tool) 
     
    1817{{{ 
    1918Cmm -> (codeOutput) --->(ncg) Assembler      -->(mangler, splitter) --> ('As' phase) -----> Object Code --> (link) --> executable 
    20                         \---> LLVM Assembler --> LLVM Optimizer     --> ('llc' phase) -----/ 
     19                        \---> (llvm) LLVM IR --> LLVM Optimizer     --> ('llc' phase) -----/ 
    2120}}} 
    2221 
     
    2726== Framework == 
    2827 
    29   * New -fllvm code generation pipeline, involved modifying: 
     28  * New '''-fllvm''' code generation pipeline, involved modifying: 
    3029    * {{{main/CodeOutput.lhs}}} - Selects appropriate back-end for code generation (C, NCG, LLVM). 
    3130    * {{{main/DynFlags.hs}}} - Stores GHC configuration (command line options, compile time options... ect). Added `HscLlvm` target type.