LLVM: llvm::AntiDepBreaker Class Reference (original) (raw)
This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards). More...
#include "[llvm/CodeGen/AntiDepBreaker.h](AntiDepBreaker%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | DbgValueVector |
| Public Member Functions | |
|---|---|
| virtual | ~AntiDepBreaker () |
| virtual void | StartBlock (MachineBasicBlock *BB)=0 |
| 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 |
| Identifiy anti-dependencies within a basic-block region and break them by renaming registers. | |
| virtual void | Observe (MachineInstr &MI, unsigned Count, unsigned InsertPosIndex)=0 |
| Update liveness information to account for the current instruction, which will not be scheduled. | |
| virtual void | FinishBlock ()=0 |
| Finish anti-dep breaking for a basic block. | |
| void | UpdateDbgValue (MachineInstr &MI, MCRegister OldReg, MCRegister NewReg) |
| Update DBG_VALUE or DBG_PHI if dependency breaker is updating other machine instruction to use NewReg. | |
| void | UpdateDbgValues (const DbgValueVector &DbgValues, MachineInstr *ParentMI, MCRegister OldReg, MCRegister NewReg) |
| Update all DBG_VALUE instructions that may be affected by the dependency breaker's update of ParentMI to use NewReg. |
This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards).
Definition at line 31 of file AntiDepBreaker.h.
◆ DbgValueVector
Initial value:
std::vector<std::pair<MachineInstr *, MachineInstr *>>
Definition at line 33 of file AntiDepBreaker.h.
| AntiDepBreaker::~AntiDepBreaker ( ) | virtualdefault |
|---|
◆ BreakAntiDependencies()
◆ FinishBlock()
| virtual void llvm::AntiDepBreaker::FinishBlock ( ) | pure virtual |
|---|
◆ Observe()
◆ StartBlock()
◆ UpdateDbgValue()
◆ UpdateDbgValues()
The documentation for this class was generated from the following files:
- include/llvm/CodeGen/AntiDepBreaker.h
- lib/CodeGen/PostRASchedulerList.cpp