Changes between Version 19 and Version 20 of Commentary/Compiler/StackAreas


Ignore:
Timestamp:
Jun 6, 2008 3:30:25 PM (7 years ago)
Author:
dias
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/StackAreas

    v19 v20  
    7676}}}
    7777
    78 An '''Area''' represents space on the stack; it may contain either a single stack slot for a register or a number of parameters passed to/from a function call/return. The '''BlockId''' is the label of the function call's continuation, and the two integers are the sizes of the outgoing and incoming parameter-passing areas.
     78An {{{Area}}} represents space on the stack; it may contain either a single stack slot for a register or a number of parameters passed to/from a function call/return. The {{{BlockId}}} is the label of the function call's continuation, and the two integers are the sizes of the outgoing and incoming parameter-passing areas.
    7979
    80 To name a specific location on the stack, we represent its address with a new kind of '''CmmExpr''': the '''CmmStackSlot'''. A '''CmmStackSlot''' is just an integer offset into an '''Area'''.
     80To name a specific location on the stack, we represent its address with a new kind of {{{CmmExpr}}}: the {{{CmmStackSlot}}}. A {{{CmmStackSlot}}} is just an integer offset into an {{{Area}}}.
    8181
    8282Note: We don't have a virtual frame pointer in this story, but do we really need it? Here's a minor argument against: it requires special treatment by some analyses in Quick C--, although it might just fold away into the large set of global registers in GHC.