LLVM: llvm::RegBankSelect::RepairingPlacement Class Reference (original) (raw)

Struct used to represent the placement of a repairing point for a given operand. More...

#include "[llvm/CodeGen/GlobalISel/RegBankSelect.h](RegBankSelect%5F8h%5Fsource.html)"

Public Types
enum RepairingKind { None, Insert, Reassign, Impossible }
Define the kind of action this repairing needs. More...
Convenient types for a list of insertion points.
using InsertionPoints = SmallVector<std::unique_ptr<InsertPoint>, 2>
using insertpt_iterator = InsertionPoints::iterator
using const_insertpt_iterator = InsertionPoints::const_iterator
Public Member Functions
RepairingPlacement (MachineInstr &MI, unsigned OpIdx, const TargetRegisterInfo &TRI, Pass &P, RepairingKind Kind=RepairingKind::Insert)
Create a repairing placement for the OpIdx-th operand of MI.
void switchTo (RepairingKind NewKind)
Change the type of this repairing placement to NewKind.
Getters.
RepairingKind getKind () const
unsigned getOpIdx () const
bool canMaterialize () const
bool hasSplit ()
Overloaded methods to add an insertion point.
Add a MBBInsertionPoint to the list of InsertPoints.
void addInsertPoint (MachineBasicBlock &MBB, bool Beginning)
void addInsertPoint (MachineInstr &MI, bool Before)
Add a InstrInsertionPoint to the list of InsertPoints.
void addInsertPoint (MachineBasicBlock &Src, MachineBasicBlock &Dst)
Add an EdgeInsertionPoint (Src, Dst) to the list of InsertPoints.
void addInsertPoint (InsertPoint &Point)
Add an InsertPoint to the list of insert points.
Accessors related to the insertion points.
insertpt_iterator begin ()
insertpt_iterator end ()
const_insertpt_iterator begin () const
const_insertpt_iterator end () const
unsigned getNumInsertPoints () const

Struct used to represent the placement of a repairing point for a given operand.

Definition at line 314 of file RegBankSelect.h.

const_insertpt_iterator

InsertionPoints

insertpt_iterator

RepairingKind

Define the kind of action this repairing needs.

Enumerator
None Nothing to repair, just drop this action.
Insert Reparing code needs to happen before InsertPoints.
Reassign (Re)assign the register bank of the operand.
Impossible Mark this repairing placement as impossible.

Definition at line 317 of file RegBankSelect.h.

addInsertPoint() [1/4]

addInsertPoint() [2/4]

addInsertPoint() [3/4]

addInsertPoint() [4/4]

void RegBankSelect::RepairingPlacement::addInsertPoint ( MachineInstr & MI,
bool Before )

begin() [1/2]

insertpt_iterator llvm::RegBankSelect::RepairingPlacement::begin ( ) inline

begin() [2/2]

const_insertpt_iterator llvm::RegBankSelect::RepairingPlacement::begin ( ) const inline

canMaterialize()

bool llvm::RegBankSelect::RepairingPlacement::canMaterialize ( ) const inline

end() [1/2]

insertpt_iterator llvm::RegBankSelect::RepairingPlacement::end ( ) inline

end() [2/2]

const_insertpt_iterator llvm::RegBankSelect::RepairingPlacement::end ( ) const inline

getKind()

RepairingKind llvm::RegBankSelect::RepairingPlacement::getKind ( ) const inline

getNumInsertPoints()

unsigned llvm::RegBankSelect::RepairingPlacement::getNumInsertPoints ( ) const inline

getOpIdx()

unsigned llvm::RegBankSelect::RepairingPlacement::getOpIdx ( ) const inline

hasSplit()

bool llvm::RegBankSelect::RepairingPlacement::hasSplit ( ) inline

switchTo()

void llvm::RegBankSelect::RepairingPlacement::switchTo ( RepairingKind NewKind) inline

The documentation for this class was generated from the following files: