Changes between Version 22 and Version 23 of Commentary/Compiler/IntegratedCodeGen


Ignore:
Timestamp:
Aug 26, 2008 12:41:10 PM (6 years ago)
Author:
dias
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/IntegratedCodeGen

    v22 v23  
    3030our design are as follows: 
    3131 
    32   0. Build two big hammers, and hit as many nails as possible.  (The big hammers are the '''dataflow rewriting engine''' and a '''coalescing register allocator.''')  The hammer itself may be big and complicated, but '''using a big hammer should be easy''' and should give easily predictable results. 
     32  0. Build two big hammers, and hit as many nails as possible.  (The big hammers are the '''dataflow optimization engine''' and a '''coalescing register allocator.''')  The hammer itself may be big and complicated, but '''using a big hammer should be easy''' and should give easily predictable results. 
    3333  0. Load all back ends into every instance of the compiler, and '''treat every compilation as a cross-compilation.'''  Despite having been used in production compilers for at least twenty years, this technique is still seen as somewhat unorthodox, but it removes many {{{#ifdef}}}s and saves significant complexity at compiler-configuration time. Removing {{{#ifdef}}}s also mitigates problems with  validating the compiler under different build configurations. 
    3434 
     
    3939'''creating new clients is easy.'''   
    4040 
    41  * We can define a new 
     41 * '''Dataflow optimization:''' We can define a new 
    4242   optimization simply by defining a lattice of dataflow facts (akin 
    4343   to a specialized logic) and then writing the dataflow-transfer 
     
    5050   [http://portal.acm.org/citation.cfm?id=503298 (Lerner, Grove, and Chambers 2002)]. 
    5151 
    52  * The back end can use fresh temporaries and register-register moves 
     52 * '''Coalescing register allocator:''' The back end can use fresh temporaries and register-register moves 
    5353   with abandon, knowing that a state-of-the-art register allocator 
    5454   will eliminate almost all move instructions.