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


Ignore:
Timestamp:
Feb 25, 2010 3:45:53 AM (5 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