LLVM 20.0.0git
|
Insertion point before or after an instruction. More...
#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
Public Member Functions | |
InstrInsertPoint (MachineInstr &Instr, bool Before=true) | |
Create an insertion point before (Before=true ) or after Instr . | |
bool | isSplit () const override |
Does this point involve splitting an edge or block? As soon as getPoint is called and thus, the point materialized, the point will not require splitting anymore, i.e., this will return false. | |
uint64_t | frequency (const Pass &P) const override |
Frequency of the insertion point. | |
bool | canMaterialize () const override |
Check whether this insertion point can be materialized. | |
Public Member Functions inherited from llvm::RegBankSelect::InsertPoint | |
virtual | ~InsertPoint ()=default |
MachineBasicBlock::iterator | getPoint () |
The first call to this method will cause the splitting to happen if need be, then sub sequent calls just return the iterator to that point. | |
MachineBasicBlock & | getInsertMBB () |
The first call to this method will cause the splitting to happen if need be, then sub sequent calls just return the basic block that contains the insertion point. | |
MachineBasicBlock::iterator | insert (MachineInstr &MI) |
Insert MI in the just before getPoint() | |
virtual bool | isSplit () const |
Does this point involve splitting an edge or block? As soon as getPoint is called and thus, the point materialized, the point will not require splitting anymore, i.e., this will return false. | |
virtual uint64_t | frequency (const Pass &P) const |
Frequency of the insertion point. | |
virtual bool | canMaterialize () const |
Check whether this insertion point can be materialized. | |
Additional Inherited Members | |
virtual void | materialize ()=0 |
Materialize the insertion point. | |
virtual MachineBasicBlock & | getInsertMBBImpl ()=0 |
Return the materialized insertion basic block. | |
virtual MachineBasicBlock::iterator | getPointImpl ()=0 |
Return the materialized insertion point. | |
Protected Attributes inherited from llvm::RegBankSelect::InsertPoint | |
bool | WasMaterialized = false |
Tell if the insert point has already been materialized. | |
Insertion point before or after an instruction.
Definition at line 204 of file RegBankSelect.h.
RegBankSelect::InstrInsertPoint::InstrInsertPoint | ( | MachineInstr & | Instr, |
bool | Before = true |
||
) |
Create an insertion point before (Before=true
) or after Instr
.
Definition at line 877 of file RegBankSelect.cpp.
|
inlineoverridevirtual |
Check whether this insertion point can be materialized.
As soon as getPoint is called and thus, the point materialized calling this method does not make sense.
Reimplemented from llvm::RegBankSelect::InsertPoint.
Definition at line 233 of file RegBankSelect.h.
Frequency of the insertion point.
P
is used to access the various analysis that will help to get that information, like MachineBlockFrequencyInfo. If P
does not contain enough to return the actual frequency, this returns 1.
Reimplemented from llvm::RegBankSelect::InsertPoint.
Definition at line 919 of file RegBankSelect.cpp.
References llvm::MachineBlockFrequencyInfo::getBlockFreq(), llvm::MBFIWrapper::getMBFI(), and P.
|
overridevirtual |
Does this point involve splitting an edge or block? As soon as getPoint is called and thus, the point materialized, the point will not require splitting anymore, i.e., this will return false.
Reimplemented from llvm::RegBankSelect::InsertPoint.
Definition at line 910 of file RegBankSelect.cpp.
References Before.