LLVM API Documentation

Public Types | Public Member Functions
llvm::AntiDepBreaker Class Reference

#include <AntiDepBreaker.h>

Inheritance diagram for llvm::AntiDepBreaker:
Inheritance graph
[legend]

List of all members.

Public Types

typedef std::vector< std::pair
< MachineInstr *, MachineInstr * > > 
DbgValueVector

Public Member Functions

virtual ~AntiDepBreaker ()
virtual void StartBlock (MachineBasicBlock *BB)=0
 Start - Initialize anti-dep breaking for a new basic block.
virtual unsigned BreakAntiDependencies (const std::vector< SUnit > &SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned InsertPosIndex, DbgValueVector &DbgValues)=0
virtual void Observe (MachineInstr *MI, unsigned Count, unsigned InsertPosIndex)=0
virtual void FinishBlock ()=0
 Finish - Finish anti-dep breaking for a basic block.
void UpdateDbgValue (MachineInstr *MI, unsigned OldReg, unsigned NewReg)

Detailed Description

AntiDepBreaker - This class works into conjunction with the post-RA scheduler to rename registers to break register anti-dependencies.

Definition at line 31 of file AntiDepBreaker.h.


Member Typedef Documentation

typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > llvm::AntiDepBreaker::DbgValueVector

Definition at line 34 of file AntiDepBreaker.h.


Constructor & Destructor Documentation

Definition at line 78 of file PostRASchedulerList.cpp.


Member Function Documentation

virtual unsigned llvm::AntiDepBreaker::BreakAntiDependencies ( const std::vector< SUnit > &  SUnits,
MachineBasicBlock::iterator  Begin,
MachineBasicBlock::iterator  End,
unsigned  InsertPosIndex,
DbgValueVector DbgValues 
) [pure virtual]

BreakAntiDependencies - Identifiy anti-dependencies within a basic-block region and break them by renaming registers. Return the number of anti-dependencies broken.

Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.

virtual void llvm::AntiDepBreaker::FinishBlock ( ) [pure virtual]

Finish - Finish anti-dep breaking for a basic block.

Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.

virtual void llvm::AntiDepBreaker::Observe ( MachineInstr MI,
unsigned  Count,
unsigned  InsertPosIndex 
) [pure virtual]

Observe - Update liveness information to account for the current instruction, which will not be scheduled.

Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.

virtual void llvm::AntiDepBreaker::StartBlock ( MachineBasicBlock BB) [pure virtual]

Start - Initialize anti-dep breaking for a new basic block.

Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.

void llvm::AntiDepBreaker::UpdateDbgValue ( MachineInstr MI,
unsigned  OldReg,
unsigned  NewReg 
) [inline]

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