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: