class RegBankSelect::EdgeInsertPoint
Declaration
class RegBankSelect::EdgeInsertPoint : public InsertPoint { /* full declaration omitted */ };
Description
Insertion point on an edge.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:273
Inherits from: RegBankSelect::InsertPoint
Member Variables
- private llvm::MachineBasicBlock& Src
- Source of the edge.
- private llvm::MachineBasicBlock* DstOrSplit
- Destination of the edge. After the materialization is done, this hold the basic block that resulted from the splitting.
- private llvm::Pass& P
- P is used to update the analysis passes as applicable.
Inherited from RegBankSelect::InsertPoint:
- protected WasMaterialized = false
Method Overview
- public EdgeInsertPoint(llvm::MachineBasicBlock & Src, llvm::MachineBasicBlock & Dst, llvm::Pass & P)
- public bool canMaterialize() const
- public uint64_t frequency(const llvm::Pass & P) const
- private llvm::MachineBasicBlock & getInsertMBBImpl()
- private MachineBasicBlock::iterator getPointImpl()
- public bool isSplit() const
- private void materialize()
Inherited from RegBankSelect::InsertPoint:
- public canMaterialize
- public frequency
- public getInsertMBB
- protected getInsertMBBImpl
- public getPoint
- protected getPointImpl
- public insert
- public isSplit
- protected materialize
Methods
¶EdgeInsertPoint(llvm::MachineBasicBlock& Src,
llvm::MachineBasicBlock& Dst,
llvm::Pass& P)
EdgeInsertPoint(llvm::MachineBasicBlock& Src,
llvm::MachineBasicBlock& Dst,
llvm::Pass& P)
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:301
Parameters
¶bool canMaterialize() const
bool canMaterialize() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:309
¶uint64_t frequency(const llvm::Pass& P) const
uint64_t frequency(const llvm::Pass& P) const
Description
Frequency of the insertion point.\p P is used to access the various analysis that will help to get that information, like MachineBlockFrequencyInfo. If \p P does not contain enough enough to return the actual frequency, this returns 1.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:308
Parameters
- const llvm::Pass& P
¶llvm::MachineBasicBlock& getInsertMBBImpl()
llvm::MachineBasicBlock& getInsertMBBImpl()
Description
Return the materialized insertion basic block. Code will be inserted into that basic block.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:298
¶MachineBasicBlock::iterator getPointImpl()
MachineBasicBlock::iterator getPointImpl()
Description
Return the materialized insertion point. Code will be inserted before that point.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:288
¶bool isSplit() const
bool isSplit() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:304
¶void materialize()
void materialize()
Description
Materialize the insertion point. If isSplit() is true, this involves actually splitting the block or edge.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h:286