Machine Code Generation for C++
Virtual register data, managed by BaseCompiler.
Returns the virtual register id.
Returns the virtual register name.
Returns the size of the virtual register name.
Returns a register signature of this virtual register.
Returns a virtual register type (maps to the physical register type as well).
Returns a virtual register group (maps to the physical register group as well).
Returns a real size of the register this virtual register maps to.
For example if this is a 128-bit SIMD register used for a scalar single precision floating point value then its virtSize would be 4, however, the
regSize would still say 16 (128-bits), because it's the smallest size of that register type.
Returns the virtual register size.
The virtual register size describes how many bytes the virtual register needs to store its content. It can be smaller than the physical register size, see
Returns the virtual register alignment.
Returns the virtual register type id.
Returns the virtual register weight - the register allocator can use it as explicit hint for alloc/spill decisions.
Sets the virtual register weight (0 to 255) - the register allocator can use it as explicit hint for alloc/spill decisions and initial bin-packing.
Returns whether the virtual register is always allocated to a fixed physical register (and never reallocated).
Tests whether the virtual register is in fact a stack that only uses the virtual register id.
Tests whether this virtual register (or stack) has assigned a stack offset.
If this is a virtual register that was never allocated on stack, it would return false, otherwise if it's a virtual register that was spilled or explicitly allocated stack, the return value would be true.
Assigns a stack offset of this virtual register to
stackOffset and sets
_hasStackSlot to true.
Returns a stack offset associated with a virtual register or explicit stack allocation.
Tests whether the virtual register has an associated
RAWorkReg at the moment.
Returns an associated RAWorkReg with this virtual register (only valid during register allocation).
Associates a RAWorkReg with this virtual register (used by register allocator).
Reset the RAWorkReg association (used by register allocator).
Virtual register signature.
Virtual register id.
Virtual register size (can be smaller than
Virtual register alignment (for spilling).
Virtual register weight for alloc/spill decisions.
True if this is a fixed register, never reallocated.
True if the virtual register is only used as a stack (never accessed as register).
True if this virtual register has assigned stack offset (can be only valid after register allocation pass).
Stack offset assigned by the register allocator relative to stack pointer (can be negative as well).
Reserved for future use (padding).
Virtual register name (user provided or automatically generated).
RAWorkReg, used during register allocation.