LLVM  14.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::outliner::OutlinedFunction Struct Reference

The information necessary to create an outlined function for some class of candidate. More...

#include "llvm/CodeGen/MachineOutliner.h"

Collaboration diagram for llvm::outliner::OutlinedFunction:
Collaboration graph
[legend]

Public Member Functions

unsigned getOccurrenceCount () const
 Return the number of candidates for this OutlinedFunction. More...
 
unsigned getOutliningCost () const
 Return the number of bytes it would take to outline this function. More...
 
unsigned getNotOutlinedCost () const
 Return the size in bytes of the unoutlined sequences. More...
 
unsigned getBenefit () const
 Return the number of instructions that would be saved by outlining this function. More...
 
unsigned getNumInstrs () const
 Return the number of instructions in this sequence. More...
 
 OutlinedFunction (std::vector< Candidate > &Candidates, unsigned SequenceSize, unsigned FrameOverhead, unsigned FrameConstructionID)
 
 OutlinedFunction ()
 

Public Attributes

std::vector< CandidateCandidates
 
MachineFunctionMF = nullptr
 The actual outlined function created. More...
 
unsigned SequenceSize = 0
 Represents the size of a sequence in bytes. More...
 
unsigned FrameOverhead = 0
 Target-defined overhead of constructing a frame for this function. More...
 
unsigned FrameConstructionID = 0
 Target-defined identifier for constructing a frame for this function. More...
 

Detailed Description

The information necessary to create an outlined function for some class of candidate.

Definition at line 164 of file MachineOutliner.h.

Constructor & Destructor Documentation

◆ OutlinedFunction() [1/2]

llvm::outliner::OutlinedFunction::OutlinedFunction ( std::vector< Candidate > &  Candidates,
unsigned  SequenceSize,
unsigned  FrameOverhead,
unsigned  FrameConstructionID 
)
inline

Definition at line 212 of file MachineOutliner.h.

References B, Candidates, and getBenefit().

◆ OutlinedFunction() [2/2]

llvm::outliner::OutlinedFunction::OutlinedFunction ( )
inline

Definition at line 221 of file MachineOutliner.h.

Member Function Documentation

◆ getBenefit()

unsigned llvm::outliner::OutlinedFunction::getBenefit ( ) const
inline

Return the number of instructions that would be saved by outlining this function.

Definition at line 202 of file MachineOutliner.h.

References getNotOutlinedCost(), and getOutliningCost().

Referenced by OutlinedFunction().

◆ getNotOutlinedCost()

unsigned llvm::outliner::OutlinedFunction::getNotOutlinedCost ( ) const
inline

Return the size in bytes of the unoutlined sequences.

Definition at line 196 of file MachineOutliner.h.

References getOccurrenceCount(), and SequenceSize.

Referenced by getBenefit().

◆ getNumInstrs()

unsigned llvm::outliner::OutlinedFunction::getNumInstrs ( ) const
inline

Return the number of instructions in this sequence.

Definition at line 210 of file MachineOutliner.h.

References Candidates.

◆ getOccurrenceCount()

unsigned llvm::outliner::OutlinedFunction::getOccurrenceCount ( ) const
inline

Return the number of candidates for this OutlinedFunction.

Definition at line 184 of file MachineOutliner.h.

References Candidates.

Referenced by getNotOutlinedCost().

◆ getOutliningCost()

unsigned llvm::outliner::OutlinedFunction::getOutliningCost ( ) const
inline

Return the number of bytes it would take to outline this function.

Definition at line 188 of file MachineOutliner.h.

References Candidates, FrameOverhead, and SequenceSize.

Referenced by getBenefit().

Member Data Documentation

◆ Candidates

std::vector<Candidate> llvm::outliner::OutlinedFunction::Candidates

◆ FrameConstructionID

unsigned llvm::outliner::OutlinedFunction::FrameConstructionID = 0

Target-defined identifier for constructing a frame for this function.

Definition at line 181 of file MachineOutliner.h.

Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), and llvm::X86InstrInfo::buildOutlinedFrame().

◆ FrameOverhead

unsigned llvm::outliner::OutlinedFunction::FrameOverhead = 0

Target-defined overhead of constructing a frame for this function.

Definition at line 178 of file MachineOutliner.h.

Referenced by getOutliningCost().

◆ MF

MachineFunction* llvm::outliner::OutlinedFunction::MF = nullptr

The actual outlined function created.

This is initialized after we go through and create the actual function.

Definition at line 171 of file MachineOutliner.h.

◆ SequenceSize

unsigned llvm::outliner::OutlinedFunction::SequenceSize = 0

Represents the size of a sequence in bytes.

(Some instructions vary widely in size, so just counting the instructions isn't very useful.)

Definition at line 175 of file MachineOutliner.h.

Referenced by getNotOutlinedCost(), and getOutliningCost().


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