LLVM
8.0.1
|
#include "CodeGen/CriticalAntiDepBreaker.h"
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. More... | |
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. More... | |
void | Observe (MachineInstr &MI, unsigned Count, unsigned InsertPosIndex) override |
Update liveness information to account for the current instruction, which will not be scheduled. More... | |
void | FinishBlock () override |
Finish anti-dep breaking for a basic block. More... | |
Public Member Functions inherited from llvm::AntiDepBreaker | |
virtual | ~AntiDepBreaker () |
void | UpdateDbgValue (MachineInstr &MI, unsigned OldReg, unsigned NewReg) |
Update DBG_VALUE if dependency breaker is updating other machine instruction to use NewReg. More... | |
void | UpdateDbgValues (const DbgValueVector &DbgValues, MachineInstr *ParentMI, unsigned OldReg, unsigned NewReg) |
Update all DBG_VALUE instructions that may be affected by the dependency breaker's update of ParentMI to use NewReg. More... | |
Additional Inherited Members | |
Public Types inherited from llvm::AntiDepBreaker | |
using | DbgValueVector = std::vector< std::pair< MachineInstr *, MachineInstr * > > |
Definition at line 37 of file CriticalAntiDepBreaker.h.
CriticalAntiDepBreaker::CriticalAntiDepBreaker | ( | MachineFunction & | MFi, |
const RegisterClassInfo & | RCI | ||
) |
Definition at line 45 of file CriticalAntiDepBreaker.cpp.
References ~CriticalAntiDepBreaker().
|
overridedefault |
Referenced by CriticalAntiDepBreaker().
|
overridevirtual |
Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers.
Implements llvm::AntiDepBreaker.
Definition at line 438 of file CriticalAntiDepBreaker.cpp.
Referenced by CriticalPathStep().
|
overridevirtual |
Finish anti-dep breaking for a basic block.
Implements llvm::AntiDepBreaker.
Definition at line 102 of file CriticalAntiDepBreaker.cpp.
References llvm::BitVector::reset().
|
overridevirtual |
Update liveness information to account for the current instruction, which will not be scheduled.
Implements llvm::AntiDepBreaker.
Definition at line 107 of file CriticalAntiDepBreaker.cpp.
References assert(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineInstr::isDebugInstr(), llvm::MachineInstr::isKill(), and Reg.
|
overridevirtual |
Initialize anti-dep breaking for a new basic block.
Implements llvm::AntiDepBreaker.
Definition at line 55 of file CriticalAntiDepBreaker.cpp.
References llvm::MachineRegisterInfo::getCalleeSavedRegs(), llvm::MachineFunction::getFrameInfo(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineFrameInfo::getPristineRegs(), llvm::MachineFunction::getRegInfo(), I, llvm::MachineBasicBlock::isReturnBlock(), llvm::MCRegAliasIterator::isValid(), Reg, llvm::BitVector::reset(), SI, llvm::MachineBasicBlock::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), and llvm::BitVector::test().