LLVM: llvm::CriticalAntiDepBreaker Class Reference (original) (raw)

#include "[CodeGen/CriticalAntiDepBreaker.h](CriticalAntiDepBreaker%5F8h%5Fsource.html)"

Public Member Functions
CriticalAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI)
~CriticalAntiDepBreaker () override
void StartBlock (MachineBasicBlock *BB) override
Initialize anti-dep breaking for a new basic block.
unsigned BreakAntiDependencies (const std::vector< SUnit > &SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned InsertPosIndex, DbgValueVector &DbgValues) override
Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers.
void Observe (MachineInstr &MI, unsigned Count, unsigned InsertPosIndex) override
Update liveness information to account for the current instruction, which will not be scheduled.
void FinishBlock () override
Finish anti-dep breaking for a basic block.
Public Member Functions inherited from llvm::AntiDepBreaker
virtual ~AntiDepBreaker ()
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.

Definition at line 36 of file CriticalAntiDepBreaker.h.

~CriticalAntiDepBreaker()

CriticalAntiDepBreaker::~CriticalAntiDepBreaker ( ) overridedefault

BreakAntiDependencies()

Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers.

Implements llvm::AntiDepBreaker.

Definition at line 437 of file CriticalAntiDepBreaker.cpp.

References llvm::SDep::Anti, assert(), llvm::Count, CriticalPathStep(), llvm::SDep::Data, llvm::dbgs(), llvm::SUnit::getInstr(), llvm::MachineOperand::getReg(), I, llvm::MCRegister::id(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), LLVM_DEBUG, MI, P, llvm::SUnit::Preds, llvm::printReg(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Range, and llvm::AntiDepBreaker::UpdateDbgValues().

Referenced by ~CriticalAntiDepBreaker().

FinishBlock()

void CriticalAntiDepBreaker::FinishBlock ( ) overridevirtual

Observe()

StartBlock()


The documentation for this class was generated from the following files: