class CriticalAntiDepBreaker
Declaration
class CriticalAntiDepBreaker : public 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/CriticalAntiDepBreaker.h:36
Inherits from: AntiDepBreaker
Method Overview
- public unsigned int BreakAntiDependencies(const std::vector<SUnit> & SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned int InsertPosIndex, llvm::AntiDepBreaker::DbgValueVector & DbgValues)
- public CriticalAntiDepBreaker(llvm::MachineFunction & MFi, const llvm::RegisterClassInfo & RCI)
- public void FinishBlock()
- public void Observe(llvm::MachineInstr & MI, unsigned int Count, unsigned int InsertPosIndex)
- public void StartBlock(llvm::MachineBasicBlock * BB)
- public ~CriticalAntiDepBreaker()
Inherited from AntiDepBreaker:
- public BreakAntiDependencies
- public FinishBlock
- public Observe
- public StartBlock
- public UpdateDbgValue
- public UpdateDbgValues
Methods
¶unsigned int BreakAntiDependencies(
const std::vector<SUnit>& SUnits,
MachineBasicBlock::iterator Begin,
MachineBasicBlock::iterator End,
unsigned int InsertPosIndex,
llvm::AntiDepBreaker::DbgValueVector&
DbgValues)
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 along the critical path of the ScheduleDAG and break them by renaming registers.
Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:82
Parameters
- const std::vector<SUnit>& SUnits
- MachineBasicBlock::iterator Begin
- MachineBasicBlock::iterator End
- unsigned int InsertPosIndex
- llvm::AntiDepBreaker::DbgValueVector& DbgValues
¶CriticalAntiDepBreaker(
llvm::MachineFunction& MFi,
const llvm::RegisterClassInfo& RCI)
CriticalAntiDepBreaker(
llvm::MachineFunction& MFi,
const llvm::RegisterClassInfo& RCI)
Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:74
Parameters
- llvm::MachineFunction& MFi
- const llvm::RegisterClassInfo& RCI
¶void FinishBlock()
void FinishBlock()
Description
Finish anti-dep breaking for a basic block.
Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:94
¶void Observe(llvm::MachineInstr& MI,
unsigned int Count,
unsigned int InsertPosIndex)
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/CriticalAntiDepBreaker.h:90
Parameters
- llvm::MachineInstr& MI
- unsigned int Count
- unsigned int InsertPosIndex
¶void StartBlock(llvm::MachineBasicBlock* BB)
void StartBlock(llvm::MachineBasicBlock* BB)
Description
Initialize anti-dep breaking for a new basic block.
Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:78
Parameters
¶~CriticalAntiDepBreaker()
~CriticalAntiDepBreaker()
Declared at: llvm/lib/CodeGen/CriticalAntiDepBreaker.h:75