|
LLVM
3.7.0
|
This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards). More...
#include <AntiDepBreaker.h>
Public Types | |
| typedef std::vector< std::pair < MachineInstr *, MachineInstr * > > | DbgValueVector |
Public Member Functions | |
| virtual | ~AntiDepBreaker () |
| virtual void | StartBlock (MachineBasicBlock *BB)=0 |
| Initialize anti-dep breaking for a new basic block. More... | |
| virtual unsigned | BreakAntiDependencies (const std::vector< SUnit > &SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned InsertPosIndex, DbgValueVector &DbgValues)=0 |
| Identifiy anti-dependencies within a basic-block region and break them by renaming registers. More... | |
| virtual void | Observe (MachineInstr *MI, unsigned Count, unsigned InsertPosIndex)=0 |
| Update liveness information to account for the current instruction, which will not be scheduled. More... | |
| virtual void | FinishBlock ()=0 |
| Finish anti-dep breaking for a basic block. More... | |
| void | UpdateDbgValue (MachineInstr *MI, unsigned OldReg, unsigned NewReg) |
| Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg. More... | |
This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards).
Definition at line 30 of file AntiDepBreaker.h.
| typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > llvm::AntiDepBreaker::DbgValueVector |
Definition at line 33 of file AntiDepBreaker.h.
|
virtual |
Definition at line 77 of file PostRASchedulerList.cpp.
|
pure virtual |
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.
|
pure virtual |
Finish anti-dep breaking for a basic block.
Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.
|
pure virtual |
Update liveness information to account for the current instruction, which will not be scheduled.
Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.
|
pure virtual |
Initialize anti-dep breaking for a new basic block.
Implemented in llvm::AggressiveAntiDepBreaker, and llvm::CriticalAntiDepBreaker.
|
inline |
Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg.
Definition at line 58 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().
1.8.6