Changeset 1375


Ignore:
Timestamp:
Oct 14, 2011, 5:43:46 PM (8 years ago)
Author:
mulligan
Message:

changes, fixing typos etc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Deliverables/D4.2-4.3/reports/D4-2.tex

    r1374 r1375  
    143143
    144144The Matita compiler's backend consists of five distinct intermediate languages: RTL, RTLntl, ERTL, LTL and LIN.
    145 A fifth language, RTLabs, serves as the entry point of the backend and the exit point of the frontend.
     145A sixth language, RTLabs, serves as the entry point of the backend and the exit point of the frontend.
    146146RTL, RTLntl, ERTL and LTL are `control flow graph based' languages, whereas LIN is a linearised language, the final language before translation to assembly.
    147147
     
    150150\paragraph{RTLabs ((Abstract) Register Transfer Language)}
    151151As mentioned, this is the final language of the compiler's frontend and the entry point for the backend.
    152 This language uses pseudoregisters, not hardware registers.\footnote{There are an unbounded number of pseudoregisters.  Pseudoregisters are converted to hardware registers of stack positions during register allocation.}
     152This language uses pseudoregisters, not hardware registers.\footnote{There are an unbounded number of pseudoregisters.  Pseudoregisters are converted to hardware registers or stack positions during register allocation.}
    153153Functions still use stackframes, where arguments are passed on the stack and results are stored in addresses.
    154 During the pass to RTL, these are eliminated, and instruction selection is carried out.
     154During the pass to RTL instruction selection is carried out.
    155155
    156156\paragraph{RTL (Register Transfer Language)}
     
    162162RTLntl is not present in the O'Caml compiler.
    163163
    164 \paragraph{ERTL (Extended Register Transfer Language)}
    165 In this language most instructions still operate on pseudoregisters, apart from instructions that move data to, and from, the accumulator.
     164\paragraph{ERTL (Explicit Register Transfer Language)}
     165This is a language very similar to RTLntl.
     166However, the calling convention is made explicit, in that functions no longer receive and return inputs and outputs via a high-level mechanism, but rather use stack slots or hadware registers.
    166167The ERTL to LTL pass performs the following transformations: liveness analysis, register colouring and register/stack slot allocation.
    167168
Note: See TracChangeset for help on using the changeset viewer.