Changes between Version 1 and Version 2 of Commentary/Compiler/Backends/LLVM/Issues


Ignore:
Timestamp:
Feb 25, 2010 3:52:02 AM (5 years ago)
Author:
dterei
Comment:

Add link to discussion with chris lattner about register pinning

Legend:

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

    v1 v2  
    1111
    1212The new back-end supports a custom calling convention to place the STG virtual registers into specific hardware registers. The current approach taken by the C back-end and NCG of having a fixed assignment of STG virtual registers to hardware registers for performance gains is not implemented in the LLVM back-end. Instead, it uses a custom calling convention to support something semantically equivalent to register pinning. The custom calling convention passes the first N variables in specific hardware registers, thus guaranteeing on all function entries that the STG virtual registers can be found in the expected hardware registers. This approach is believed to provide better performance than the register pinning used by NCG/C back-ends as it keeps the STG virtual registers mostly in hardware registers but allows the register allocator more flexibility and access to all machine registers.
     13
     14For some more information about the use of a custom calling convention see [http://www.nondot.org/sabre/LLVMNotes/GlobalRegisterVariables.txt here (Discussion between Chris Lattner and David Terei)]
    1315
    1416== TABLES_NEXT_TO_CODE ==