LLVM: llvm::outliner::Candidate Struct Reference (original) (raw)

An individual sequence of instructions to be replaced with a call to an outlined function. More...

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

Public Member Functions
unsigned getLength () const
Return the number of instructions in this Candidate.
unsigned getStartIdx () const
Return the start index of this candidate.
unsigned getEndIdx () const
Return the end index of this candidate.
void setCallInfo (unsigned CID, unsigned CO)
Set the CallConstructionID and CallOverhead of this candidate to CID and CO respectively.
unsigned getCallOverhead () const
Returns the call overhead of this candidate if it is in the list.
MachineBasicBlock::iterator begin ()
MachineBasicBlock::iterator end ()
MachineInstr & front ()
MachineInstr & back ()
MachineFunction * getMF () const
MachineBasicBlock * getMBB () const
bool isAvailableAcrossAndOutOfSeq (Register Reg, const TargetRegisterInfo &TRI)
bool isAnyUnavailableAcrossOrOutOfSeq (std::initializer_list< Register > Regs, const TargetRegisterInfo &TRI)
bool isAvailableInsideSeq (Register Reg, const TargetRegisterInfo &TRI)
Candidate (unsigned StartIdx, unsigned Len, MachineBasicBlock::iterator &FirstInst, MachineBasicBlock::iterator &LastInst, MachineBasicBlock *MBB, unsigned FunctionIdx, unsigned Flags)
Candidate ()=delete
bool operator< (const Candidate &RHS) const
Used to ensure that Candidates are outlined in an order that preserves the start and end indices of other Candidates.
Public Attributes
unsigned FunctionIdx = 0
The index of this Candidate's OutlinedFunction in the list of OutlinedFunctions.
unsigned CallConstructionID = 0
Identifier denoting the instructions to emit to call an outlined function from this point.
unsigned Flags = 0x0
Target-specific flags for this Candidate's MBB.
unsigned Benefit = 0
The number of instructions that would be saved by outlining every candidate of this type.

An individual sequence of instructions to be replaced with a call to an outlined function.

Definition at line 38 of file MachineOutliner.h.

Candidate() [2/2]

llvm::outliner::Candidate::Candidate ( ) delete

back()

begin()

end()

front()

getCallOverhead()

unsigned llvm::outliner::Candidate::getCallOverhead ( ) const inline

Returns the call overhead of this candidate if it is in the list.

Definition at line 137 of file MachineOutliner.h.

getEndIdx()

unsigned llvm::outliner::Candidate::getEndIdx ( ) const inline

getLength()

unsigned llvm::outliner::Candidate::getLength ( ) const inline

getMBB()

getMF()

getStartIdx()

unsigned llvm::outliner::Candidate::getStartIdx ( ) const inline

isAnyUnavailableAcrossOrOutOfSeq()

isAvailableAcrossAndOutOfSeq()

Returns

True if Reg is available from the end of the block to the beginning of the sequence.

This query considers the following range:

in_seq_1 in_seq_2 ... in_seq_n not_in_seq_1 ...

Definition at line 159 of file MachineOutliner.h.

References Reg, and TRI.

isAvailableInsideSeq()

Returns

True if Reg is available within the sequence itself.

This query considers the following range:

in_seq_1 in_seq_2 ... in_seq_n

Definition at line 185 of file MachineOutliner.h.

References Reg, and TRI.

operator<()

setCallInfo()

Benefit

unsigned llvm::outliner::Candidate::Benefit = 0

The number of instructions that would be saved by outlining every candidate of this type.

This is a fixed value which is not updated during the candidate pruning process. It is only used for deciding which candidate to keep if two candidates overlap. The true benefit is stored in the OutlinedFunction for some given candidate.

Definition at line 198 of file MachineOutliner.h.

CallConstructionID

unsigned llvm::outliner::Candidate::CallConstructionID = 0

Identifier denoting the instructions to emit to call an outlined function from this point.

Defined by the target.

Definition at line 115 of file MachineOutliner.h.

Referenced by setCallInfo().

Flags

unsigned llvm::outliner::Candidate::Flags = 0x0

FunctionIdx

unsigned llvm::outliner::Candidate::FunctionIdx = 0


The documentation for this struct was generated from the following file: