LLVM API Documentation
#include <AntiDepBreaker.h>
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) |
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.
typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > llvm::AntiDepBreaker::DbgValueVector |
Definition at line 34 of file AntiDepBreaker.h.
AntiDepBreaker::~AntiDepBreaker | ( | ) | [virtual] |
Definition at line 78 of file PostRASchedulerList.cpp.
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] |
UpdateDbgValue - Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg.
Definition at line 62 of file AntiDepBreaker.h.
References llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineInstr::isDebugValue(), llvm::MachineOperand::isReg(), and llvm::MachineOperand::setReg().
Referenced by llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), and llvm::AggressiveAntiDepBreaker::BreakAntiDependencies().