LLVM: llvm::CoalescerPair Class Reference (original) (raw)
A helper class for register coalescers. More...
#include "[CodeGen/RegisterCoalescer.h](RegisterCoalescer%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| CoalescerPair (const TargetRegisterInfo &tri) | |
| CoalescerPair (Register VirtReg, MCRegister PhysReg, const TargetRegisterInfo &tri) | |
| Create a CoalescerPair representing a virtreg-to-physreg copy. | |
| bool | setRegisters (const MachineInstr *) |
| Set registers to match the copy instruction MI. | |
| bool | flip () |
| Swap SrcReg and DstReg. | |
| bool | isCoalescable (const MachineInstr *) const |
| Return true if MI is a copy instruction that will become an identity copy after coalescing. | |
| bool | isPhys () const |
| Return true if DstReg is a physical register. | |
| bool | isPartial () const |
| Return true if the original copy instruction did not copy the full register, but was a subreg operation. | |
| bool | isCrossClass () const |
| Return true if DstReg is virtual and NewRC is a smaller register class than DstReg's. | |
| bool | isFlipped () const |
| Return true when getSrcReg is the register being defined by the original copy instruction. | |
| Register | getDstReg () const |
| Return the register (virtual or physical) that will remain after coalescing. | |
| Register | getSrcReg () const |
| Return the virtual register that will be coalesced away. | |
| unsigned | getDstIdx () const |
| Return the subregister index that DstReg will be coalesced into, or 0. | |
| unsigned | getSrcIdx () const |
| Return the subregister index that SrcReg will be coalesced into, or 0. | |
| const TargetRegisterClass * | getNewRC () const |
| Return the register class of the coalesced register. |
A helper class for register coalescers.
When deciding if two registers can be coalesced, CoalescerPair can determine if a copy instruction would become an identity copy after coalescing.
Definition at line 29 of file RegisterCoalescer.h.
◆ CoalescerPair() [2/2]
◆ flip()
| bool CoalescerPair::flip | ( | ) |
|---|
Swap SrcReg and DstReg.
Return false if swapping is impossible because DstReg is a physical register, or SubIdx is set.
Definition at line 549 of file RegisterCoalescer.cpp.
References std::swap().
◆ getDstIdx()
| unsigned llvm::CoalescerPair::getDstIdx ( ) const | inline |
|---|
Return the subregister index that DstReg will be coalesced into, or 0.
Definition at line 104 of file RegisterCoalescer.h.
◆ getDstReg()
| Register llvm::CoalescerPair::getDstReg ( ) const | inline |
|---|
Return the register (virtual or physical) that will remain after coalescing.
Definition at line 98 of file RegisterCoalescer.h.
◆ getNewRC()
◆ getSrcIdx()
| unsigned llvm::CoalescerPair::getSrcIdx ( ) const | inline |
|---|
Return the subregister index that SrcReg will be coalesced into, or 0.
Definition at line 107 of file RegisterCoalescer.h.
◆ getSrcReg()
| Register llvm::CoalescerPair::getSrcReg ( ) const | inline |
|---|
◆ isCoalescable()
◆ isCrossClass()
| bool llvm::CoalescerPair::isCrossClass ( ) const | inline |
|---|
Return true if DstReg is virtual and NewRC is a smaller register class than DstReg's.
Definition at line 90 of file RegisterCoalescer.h.
◆ isFlipped()
| bool llvm::CoalescerPair::isFlipped ( ) const | inline |
|---|
Return true when getSrcReg is the register being defined by the original copy instruction.
Definition at line 94 of file RegisterCoalescer.h.
◆ isPartial()
| bool llvm::CoalescerPair::isPartial ( ) const | inline |
|---|
Return true if the original copy instruction did not copy the full register, but was a subreg operation.
Definition at line 86 of file RegisterCoalescer.h.
◆ isPhys()
| bool llvm::CoalescerPair::isPhys ( ) const | inline |
|---|
◆ setRegisters()
The documentation for this class was generated from the following files:
- lib/CodeGen/RegisterCoalescer.h
- lib/CodeGen/RegisterCoalescer.cpp