Changes between Version 2 and Version 3 of Commentary/Compiler/Backends/LLVM/Design


Ignore:
Timestamp:
Feb 25, 2010 3:45:53 AM (4 years ago)
Author:
dterei
Comment:

improved look of headings

Legend:

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

    v2 v3  
    176176These are all the available `callee save` registers on x86. `callee save` are used as in ghc generated code now saving and restoring of these registers are needed due to there new special use and because GHC uses continuation passing style, so a `'ret'` statement is never actually generated. And since they are `callee save`, foreign code can also be called without any need to handle the `Cmm` registers. 
    177177 
    178 == `CmmData` == 
     178== !CmmData == 
    179179 
    180180`CmmData` takes the following form: 
     
    208208All `CmmStatic` is translated to LLVM structures. 
    209209 
    210 == `CmmStaticLit` == 
     210== !CmmStaticLit == 
    211211 
    212212These are translated when possible as follows: 
     
    219219  * `CmmHighStackMark` -> Panic occurs if this type is encountered. 
    220220 
    221 ==== `CmmUninitialised` ==== 
     221==== !CmmUninitialised ==== 
    222222 
    223223For this, a zeroed array of `8bit` values is created of correct size. 
    224224 
    225 ==== `CmmAlign` & `CmmDataLabel` ==== 
     225==== !CmmAlign & !CmmDataLabel ==== 
    226226 
    227227The LLVM back-end can't handle `CmmAlign` or `CmmDataLabel`. A panic occurs if either is encountered. A `CmmDataLabel` is expected at the very start of each list of `CmmStatic`. It is removed and used as the name for the structure and constant instance. 
    228228 
    229 ==== `CmmString` ==== 
     229==== !CmmString ==== 
    230230 
    231231This is translated into a LLVM string. Ascii characters are used when they are printable, escaped hex values otherwise. A null termination is added. 
     
    243243Where i32 is the pointer size. (i64 if on 64 bit). 
    244244 
    245 == `CmmProc` == 
     245== !CmmProc == 
    246246 
    247247TODO