• 'regalloc'* - a global register allocator

This transformation attempts to assign register for any operand (found in LIR) that can be allocated in register.

A set of registers available for allocation is specified by input arguments.

The operands that cannot be placed to register are ignored.

This allocator should be called for each set of the registers available (GPReg, XMM, FP) independently.

It is not guaranteed that all operands which can be assigned to registers will be assigned.

Therefore, the companion transformation spillgen must be used after this pass.

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32RegAlloc0.cpp

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32RegAlloc2.cpp

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32RegAlloc3.cpp

  • No labels