Wrapper class representing virtual and physical registers. Should be passed by value.
Synopsis
Declared in <llvm/CodeGen/Register.h>
class Register;
Member Functions
Name |
Description |
|
Constructors |
Utility to check‐convert this value to a MCRegister. The caller is expected to have already validated that this Register is, indeed, physical. |
|
Return true if the specified register number is in the physical register namespace. |
|
Return true if this is a stack slot. |
|
Return true if the specified register number is in the virtual register namespace. |
|
Operators to move from one register to another nearby register by adding an offset. |
|
Addition assignment operator |
|
Compute the frame index from a register value representing a stack slot. |
|
Convert a virtual register number to a 0‐based index. The first virtual register in a function will get the index 0. |
|
Conversion to |
|
Conversion to |
|
Equality operators |
|
Inequality operators |
Static Member Functions
Name |
Description |
Convert a frame index to a stack slot register value. |
|
Convert a 0‐based index to a virtual register number. This is the inverse operation of VirtReg2IndexFunctor below. |
|
Return true if the specified register number is in the physical register namespace. |
|
Return true if the specified register number is in the virtual register namespace. |
Static Data Members
Non-Member Functions
Name |
Description |
Returns true if |
|
Returns true if |
|
Check if DstReg can be replaced with SrcReg depending on the register constraints. |
|
Constrain the Register operand OpIdx, so that it is now constrained to the TargetRegisterClass passed as an argument (RegClass). If this fails, create a new virtual register in the correct class and insert a COPY before |
|
Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc |
|
Try to constrain Reg to the specified register class. If this fails, create a new virtual register in the correct class. |
|
Version which handles irregular splits. |
|
Helper function to split a wide generic register into bitwise blocks with the given Type (which implies the number of blocks needed). The generic registers created are appended to Ops, starting at bit 0 of Reg. |
|
Version which handles irregular sub‐vector splits. |
|
Compute the possible floating‐point classes that |
|
If |
|
Find the def instruction for |
|
Find the def instruction for |
|
Returns a floating point scalar constant of a build vector splat if it exists. When |
|
If |
|
Return a virtual register corresponding to the incoming argument register |
|
|
|
If |
|
If |
|
If |
|
See if Reg is defined by an single def instruction of type T Also try to do trivial folding if it's a COPY with same types. Returns null otherwise. |
|
Find the source register for |
|
Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are |
|
Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are |
|
Determines if |
|
Determines if |
|
Returns true if |
|
Returns true if |
|
Returns true if |
|
Test if the given value is known to have exactly one bit set. This differs from computeKnownBits in that it doesn't necessarily determine which bit is set. When |
|
Check if physical register |
|
Prints virtual and physical registers with or without a TRI instance. |
|
Create Printable object to print register classes or register banks on a |
|
Returns a BaseIndexOffset which describes the pointer in |
|
Similar to m_SpecificReg/Type, but the specific value to match originated from an earlier sub‐pattern in the same mi_match expression. For example, we cannot match |
|
Matches a register only if it is equal to |
Created with MrDocs