class AntiDepBreaker
Declaration
class AntiDepBreaker { /* full declaration omitted */ };
Description
This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards).
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:31
Method Overview
- public virtual unsigned int BreakAntiDependencies(const std::vector<SUnit> & SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned int InsertPosIndex, llvm::AntiDepBreaker::DbgValueVector & DbgValues)
- public virtual void FinishBlock()
- public virtual void Observe(llvm::MachineInstr & MI, unsigned int Count, unsigned int InsertPosIndex)
- public virtual void StartBlock(llvm::MachineBasicBlock * BB)
- public void UpdateDbgValue(llvm::MachineInstr & MI, unsigned int OldReg, unsigned int NewReg)
- public void UpdateDbgValues(const llvm::AntiDepBreaker::DbgValueVector & DbgValues, llvm::MachineInstr * ParentMI, unsigned int OldReg, unsigned int NewReg)
- public virtual ~AntiDepBreaker()
Methods
¶virtual unsigned int BreakAntiDependencies(
const std::vector<SUnit>& SUnits,
MachineBasicBlock::iterator Begin,
MachineBasicBlock::iterator End,
unsigned int InsertPosIndex,
llvm::AntiDepBreaker::DbgValueVector&
DbgValues)
virtual unsigned int BreakAntiDependencies(
const std::vector<SUnit>& SUnits,
MachineBasicBlock::iterator Begin,
MachineBasicBlock::iterator End,
unsigned int InsertPosIndex,
llvm::AntiDepBreaker::DbgValueVector&
DbgValues)
Description
Identifiy anti-dependencies within a basic-block region and break them by renaming registers. Return the number of anti-dependencies broken.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:43
Parameters
- const std::vector<SUnit>& SUnits
- MachineBasicBlock::iterator Begin
- MachineBasicBlock::iterator End
- unsigned int InsertPosIndex
- llvm::AntiDepBreaker::DbgValueVector& DbgValues
¶virtual void FinishBlock()
virtual void FinishBlock()
Description
Finish anti-dep breaking for a basic block.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:55
¶virtual void Observe(llvm::MachineInstr& MI,
unsigned int Count,
unsigned int InsertPosIndex)
virtual void Observe(llvm::MachineInstr& MI,
unsigned int Count,
unsigned int InsertPosIndex)
Description
Update liveness information to account for the current instruction, which will not be scheduled.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:51
Parameters
- llvm::MachineInstr& MI
- unsigned int Count
- unsigned int InsertPosIndex
¶virtual void StartBlock(
llvm::MachineBasicBlock* BB)
virtual void StartBlock(
llvm::MachineBasicBlock* BB)
Description
Initialize anti-dep breaking for a new basic block.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:39
Parameters
¶void UpdateDbgValue(llvm::MachineInstr& MI,
unsigned int OldReg,
unsigned int NewReg)
void UpdateDbgValue(llvm::MachineInstr& MI,
unsigned int OldReg,
unsigned int NewReg)
Description
Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:59
Parameters
- llvm::MachineInstr& MI
- unsigned int OldReg
- unsigned int NewReg
¶void UpdateDbgValues(
const llvm::AntiDepBreaker::DbgValueVector&
DbgValues,
llvm::MachineInstr* ParentMI,
unsigned int OldReg,
unsigned int NewReg)
void UpdateDbgValues(
const llvm::AntiDepBreaker::DbgValueVector&
DbgValues,
llvm::MachineInstr* ParentMI,
unsigned int OldReg,
unsigned int NewReg)
Description
Update all DBG_VALUE instructions that may be affected by the dependency breaker's update of ParentMI to use NewReg.
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:67
Parameters
- const llvm::AntiDepBreaker::DbgValueVector& DbgValues
- llvm::MachineInstr* ParentMI
- unsigned int OldReg
- unsigned int NewReg
¶virtual ~AntiDepBreaker()
virtual ~AntiDepBreaker()
Declared at: llvm/lib/CodeGen/AntiDepBreaker.h:36