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: