LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::MachineTraceMetrics::Ensemble Class Referenceabstract

#include <MachineTraceMetrics.h>

Collaboration diagram for llvm::MachineTraceMetrics::Ensemble:
Collaboration graph
[legend]

Public Member Functions

virtual ~Ensemble ()
 
virtual const char * getName () const =0
 
void print (raw_ostream &) const
 
void invalidate (const MachineBasicBlock *MBB)
 Invalidate traces through BadMBB. More...
 
void verify () const
 
Trace getTrace (const MachineBasicBlock *MBB)
 

Protected Member Functions

virtual const MachineBasicBlockpickTracePred (const MachineBasicBlock *)=0
 
virtual const MachineBasicBlockpickTraceSucc (const MachineBasicBlock *)=0
 
 Ensemble (MachineTraceMetrics *)
 
const MachineLoopgetLoopFor (const MachineBasicBlock *) const
 
const TraceBlockInfogetDepthResources (const MachineBasicBlock *) const
 
const TraceBlockInfogetHeightResources (const MachineBasicBlock *) const
 
ArrayRef< unsignedgetProcResourceDepths (unsigned MBBNum) const
 
ArrayRef< unsignedgetProcResourceHeights (unsigned MBBNum) const
 

Protected Attributes

MachineTraceMetricsMTM
 

Friends

class Trace
 

Detailed Description

A trace ensemble is a collection of traces selected using the same strategy, for example 'minimum resource height'. There is one trace for every block in the function.

Definition at line 294 of file MachineTraceMetrics.h.

Constructor & Destructor Documentation

MachineTraceMetrics::Ensemble::Ensemble ( MachineTraceMetrics ct)
explicitprotected
MachineTraceMetrics::Ensemble::~Ensemble ( )
virtual

Definition at line 156 of file MachineTraceMetrics.cpp.

Member Function Documentation

const MachineTraceMetrics::TraceBlockInfo * MachineTraceMetrics::Ensemble::getDepthResources ( const MachineBasicBlock MBB) const
protected
const MachineTraceMetrics::TraceBlockInfo * MachineTraceMetrics::Ensemble::getHeightResources ( const MachineBasicBlock MBB) const
protected
const MachineLoop * MachineTraceMetrics::Ensemble::getLoopFor ( const MachineBasicBlock MBB) const
protected

Definition at line 159 of file MachineTraceMetrics.cpp.

virtual const char* llvm::MachineTraceMetrics::Ensemble::getName ( ) const
pure virtual
ArrayRef< unsigned > MachineTraceMetrics::Ensemble::getProcResourceDepths ( unsigned  MBBNum) const
protected

Get an array of processor resource depths for MBB. Indexed by processor resource kind, this array contains the scaled processor resources consumed by all blocks preceding MBB in its trace. It does not include instructions in MBB.

Compare TraceBlockInfo::InstrDepth.

Definition at line 256 of file MachineTraceMetrics.cpp.

ArrayRef< unsigned > MachineTraceMetrics::Ensemble::getProcResourceHeights ( unsigned  MBBNum) const
protected

Get an array of processor resource heights for MBB. Indexed by processor resource kind, this array contains the scaled processor resources consumed by this block and all blocks following it in its trace.

Compare TraceBlockInfo::InstrHeight.

Definition at line 270 of file MachineTraceMetrics.cpp.

MachineTraceMetrics::Trace MachineTraceMetrics::Ensemble::getTrace ( const MachineBasicBlock MBB)

Get the trace that passes through MBB. The trace is computed on demand.

Definition at line 1144 of file MachineTraceMetrics.cpp.

References llvm::MachineBasicBlock::getNumber(), and llvm::MachineTraceMetrics::Trace.

void MachineTraceMetrics::Ensemble::invalidate ( const MachineBasicBlock MBB)
virtual const MachineBasicBlock* llvm::MachineTraceMetrics::Ensemble::pickTracePred ( const MachineBasicBlock )
protectedpure virtual
virtual const MachineBasicBlock* llvm::MachineTraceMetrics::Ensemble::pickTraceSucc ( const MachineBasicBlock )
protectedpure virtual
void MachineTraceMetrics::Ensemble::print ( raw_ostream OS) const

Definition at line 1239 of file MachineTraceMetrics.cpp.

References llvm::Intrinsic::getName().

Referenced by llvm::operator<<().

void MachineTraceMetrics::Ensemble::verify ( ) const

Friends And Related Function Documentation

friend class Trace
friend

Definition at line 299 of file MachineTraceMetrics.h.

Member Data Documentation

MachineTraceMetrics& llvm::MachineTraceMetrics::Ensemble::MTM
protected

Definition at line 311 of file MachineTraceMetrics.h.

Referenced by Ensemble().


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