LLVM API Documentation

Public Member Functions | Public Attributes
llvm::MachineTraceMetrics::TraceBlockInfo Struct Reference

#include <MachineTraceMetrics.h>

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

List of all members.

Public Member Functions

 TraceBlockInfo ()
bool hasValidDepth () const
bool hasValidHeight () const
void invalidateDepth ()
 Invalidate depth resources when some block above this one has changed.
void invalidateHeight ()
 Invalidate height resources when a block below this one has changed.
bool isUsefulDominator (const TraceBlockInfo &TBI) const
void print (raw_ostream &) const

Public Attributes

const MachineBasicBlockPred
const MachineBasicBlockSucc
unsigned Head
 The block number of the head of the trace. (When hasValidDepth()).
unsigned Tail
 The block number of the tail of the trace. (When hasValidHeight()).
unsigned InstrDepth
unsigned InstrHeight
bool HasValidInstrDepths
 Instruction depths have been computed. This implies hasValidDepth().
bool HasValidInstrHeights
 Instruction heights have been computed. This implies hasValidHeight().
unsigned CriticalPath
SmallVector< LiveInReg, 4 > LiveIns

Detailed Description

Per-basic block information that relates to a specific trace through the block. Convergent traces means that only one of these is required per block in a trace ensemble.

Definition at line 133 of file MachineTraceMetrics.h.


Constructor & Destructor Documentation

Definition at line 156 of file MachineTraceMetrics.h.


Member Function Documentation

Invalidate depth resources when some block above this one has changed.

Definition at line 170 of file MachineTraceMetrics.h.

References HasValidInstrDepths, and InstrDepth.

Referenced by llvm::MachineTraceMetrics::Ensemble::invalidate().

Invalidate height resources when a block below this one has changed.

Definition at line 173 of file MachineTraceMetrics.h.

References HasValidInstrHeights, and InstrHeight.

Referenced by llvm::MachineTraceMetrics::Ensemble::invalidate().

Assuming that this is a dominator of TBI, determine if it contains useful instruction depths. A dominating block can be above the current trace head, and any dependencies from such a far away dominator are not expected to affect the critical path.

Also returns true when TBI == this.

Definition at line 181 of file MachineTraceMetrics.h.

References hasValidDepth(), HasValidInstrDepths, Head, and InstrDepth.

Referenced by llvm::MachineTraceMetrics::Trace::isDepInTrace().

Definition at line 1272 of file MachineTraceMetrics.cpp.

References llvm::MachineBasicBlock::getNumber().


Member Data Documentation

Critical path length. This is the number of cycles in the longest data dependency chain through the trace. This is only valid when both HasValidInstrDepths and HasValidInstrHeights are set.

Definition at line 209 of file MachineTraceMetrics.h.

Referenced by llvm::MachineTraceMetrics::Trace::getCriticalPath().

Instruction depths have been computed. This implies hasValidDepth().

Definition at line 201 of file MachineTraceMetrics.h.

Referenced by invalidateDepth(), and isUsefulDominator().

Instruction heights have been computed. This implies hasValidHeight().

Definition at line 204 of file MachineTraceMetrics.h.

Referenced by invalidateHeight().

The block number of the head of the trace. (When hasValidDepth()).

Definition at line 143 of file MachineTraceMetrics.h.

Referenced by isUsefulDominator().

Accumulated number of instructions in the trace above this block. Does not include instructions in this block.

Definition at line 150 of file MachineTraceMetrics.h.

Referenced by llvm::MachineTraceMetrics::Trace::getInstrCount(), hasValidDepth(), invalidateDepth(), and isUsefulDominator().

Accumulated number of instructions in the trace below this block. Includes instructions in this block.

Definition at line 154 of file MachineTraceMetrics.h.

Referenced by llvm::MachineTraceMetrics::Trace::getInstrCount(), hasValidHeight(), and invalidateHeight().

Live-in registers. These registers are defined above the current block and used by this block or a block below it. This does not include PHI uses in the current block, but it does include PHI uses in deeper blocks.

Definition at line 215 of file MachineTraceMetrics.h.

Trace predecessor, or NULL for the first block in the trace. Valid when hasValidDepth().

Definition at line 136 of file MachineTraceMetrics.h.

Referenced by llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::Trace::print(), and llvm::MachineTraceMetrics::Ensemble::verify().

Trace successor, or NULL for the last block in the trace. Valid when hasValidHeight().

Definition at line 140 of file MachineTraceMetrics.h.

Referenced by llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::Trace::print(), and llvm::MachineTraceMetrics::Ensemble::verify().

The block number of the tail of the trace. (When hasValidHeight()).

Definition at line 146 of file MachineTraceMetrics.h.


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