class MachineTraceMetrics::Ensemble

Declaration

class MachineTraceMetrics::Ensemble { /* full declaration omitted */ };

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.

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:321

Member Variables

protected llvm::MachineTraceMetrics& MTM

Method Overview

  • protected Ensemble(llvm::MachineTraceMetrics *)
  • protected const llvm::MachineTraceMetrics::TraceBlockInfo * getDepthResources(const llvm::MachineBasicBlock *) const
  • protected const llvm::MachineTraceMetrics::TraceBlockInfo * getHeightResources(const llvm::MachineBasicBlock *) const
  • protected const llvm::MachineLoop * getLoopFor(const llvm::MachineBasicBlock *) const
  • public virtual const char * getName() const
  • protected ArrayRef<unsigned int> getProcResourceDepths(unsigned int MBBNum) const
  • protected ArrayRef<unsigned int> getProcResourceHeights(unsigned int MBBNum) const
  • public llvm::MachineTraceMetrics::Trace getTrace(const llvm::MachineBasicBlock * MBB)
  • public void invalidate(const llvm::MachineBasicBlock * MBB)
  • protected virtual const llvm::MachineBasicBlock * pickTracePred(const llvm::MachineBasicBlock *)
  • protected virtual const llvm::MachineBasicBlock * pickTraceSucc(const llvm::MachineBasicBlock *)
  • public void print(llvm::raw_ostream &) const
  • public void updateDepth(const llvm::MachineBasicBlock *, const llvm::MachineInstr &, SparseSet<llvm::LiveRegUnit> & RegUnits)
  • public void updateDepth(llvm::MachineTraceMetrics::TraceBlockInfo & TBI, const llvm::MachineInstr &, SparseSet<llvm::LiveRegUnit> & RegUnits)
  • public void updateDepths(MachineBasicBlock::iterator Start, MachineBasicBlock::iterator End, SparseSet<llvm::LiveRegUnit> & RegUnits)
  • public void verify() const
  • public virtual ~Ensemble()

Methods

Ensemble(llvm::MachineTraceMetrics*)

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:341

Parameters

llvm::MachineTraceMetrics*

const llvm::MachineTraceMetrics::TraceBlockInfo*
getDepthResources(
    const llvm::MachineBasicBlock*) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:346

Parameters

const llvm::MachineBasicBlock*

const llvm::MachineTraceMetrics::TraceBlockInfo*
getHeightResources(
    const llvm::MachineBasicBlock*) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:347

Parameters

const llvm::MachineBasicBlock*

const llvm::MachineLoop* getLoopFor(
    const llvm::MachineBasicBlock*) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:345

Parameters

const llvm::MachineBasicBlock*

virtual const char* getName() const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:354

ArrayRef<unsigned int> getProcResourceDepths(
    unsigned int MBBNum) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:348

Parameters

unsigned int MBBNum

ArrayRef<unsigned int> getProcResourceHeights(
    unsigned int MBBNum) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:349

Parameters

unsigned int MBBNum

llvm::MachineTraceMetrics::Trace getTrace(
    const llvm::MachineBasicBlock* MBB)

Description

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

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:361

Parameters

const llvm::MachineBasicBlock* MBB

void invalidate(
    const llvm::MachineBasicBlock* MBB)

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:356

Parameters

const llvm::MachineBasicBlock* MBB

virtual const llvm::MachineBasicBlock*
pickTracePred(const llvm::MachineBasicBlock*)

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:343

Parameters

const llvm::MachineBasicBlock*

virtual const llvm::MachineBasicBlock*
pickTraceSucc(const llvm::MachineBasicBlock*)

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:344

Parameters

const llvm::MachineBasicBlock*

void print(llvm::raw_ostream&) const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:355

Parameters

llvm::raw_ostream&

void updateDepth(
    const llvm::MachineBasicBlock*,
    const llvm::MachineInstr&,
    SparseSet<llvm::LiveRegUnit>& RegUnits)

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:366

Parameters

const llvm::MachineBasicBlock*
const llvm::MachineInstr&
SparseSet<llvm::LiveRegUnit>& RegUnits

void updateDepth(
    llvm::MachineTraceMetrics::TraceBlockInfo&
        TBI,
    const llvm::MachineInstr&,
    SparseSet<llvm::LiveRegUnit>& RegUnits)

Description

Updates the depth of an machine instruction, given RegUnits.

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:364

Parameters

llvm::MachineTraceMetrics::TraceBlockInfo& TBI
const llvm::MachineInstr&
SparseSet<llvm::LiveRegUnit>& RegUnits

void updateDepths(
    MachineBasicBlock::iterator Start,
    MachineBasicBlock::iterator End,
    SparseSet<llvm::LiveRegUnit>& RegUnits)

Description

Updates the depth of the instructions from Start to End.

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:370

Parameters

MachineBasicBlock::iterator Start
MachineBasicBlock::iterator End
SparseSet<llvm::LiveRegUnit>& RegUnits

void verify() const

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:357

virtual ~Ensemble()

Declared at: llvm/include/llvm/CodeGen/MachineTraceMetrics.h:352