LLVM API Documentation
Class AggressiveAntiDepBreaker. More...
#include <AggressiveAntiDepBreaker.h>
Public Member Functions | |
AggressiveAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI, TargetSubtargetInfo::RegClassVector &CriticalPathRCs) | |
~AggressiveAntiDepBreaker () | |
void | StartBlock (MachineBasicBlock *BB) |
Start - 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) |
void | Observe (MachineInstr *MI, unsigned Count, unsigned InsertPosIndex) |
void | FinishBlock () |
Finish - Finish anti-dep breaking for a basic block. More... | |
![]() | |
virtual | ~AntiDepBreaker () |
void | UpdateDbgValue (MachineInstr *MI, unsigned OldReg, unsigned NewReg) |
Additional Inherited Members | |
![]() | |
typedef std::vector< std::pair < MachineInstr *, MachineInstr * > > | DbgValueVector |
Class AggressiveAntiDepBreaker.
Definition at line 117 of file AggressiveAntiDepBreaker.h.
AggressiveAntiDepBreaker::AggressiveAntiDepBreaker | ( | MachineFunction & | MFi, |
const RegisterClassInfo & | RCI, | ||
TargetSubtargetInfo::RegClassVector & | CriticalPathRCs | ||
) |
Definition at line 116 of file AggressiveAntiDepBreaker.cpp.
References llvm::dbgs(), DEBUG, llvm::BitVector::find_first(), llvm::BitVector::find_next(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::MCRegisterInfo::getName(), llvm::BitVector::none(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
AggressiveAntiDepBreaker::~AggressiveAntiDepBreaker | ( | ) |
Definition at line 142 of file AggressiveAntiDepBreaker.cpp.
|
virtual |
BreakAntiDependencies - Identifiy anti-dependencies along the critical path of the ScheduleDAG and break them by renaming registers.
BreakAntiDependencies - Identifiy anti-dependencies within the ScheduleDAG and break them by renaming registers.
Implements llvm::AntiDepBreaker.
Definition at line 697 of file AggressiveAntiDepBreaker.cpp.
References llvm::SDep::Anti, AntiDepEdges(), llvm::BitVector::any(), CriticalPathStep(), llvm::SDep::Data, llvm::dbgs(), DEBUG, llvm::MachineInstr::dump(), llvm::MachineInstr::findRegisterDefOperand(), llvm::AggressiveAntiDepState::GetDefIndices(), llvm::SUnit::getDepth(), llvm::AggressiveAntiDepState::GetGroup(), llvm::SUnit::getInstr(), llvm::AggressiveAntiDepState::GetKillIndices(), llvm::SDep::getKind(), llvm::SDep::getReg(), llvm::AggressiveAntiDepState::GetRegRefs(), llvm::SDep::getSUnit(), I, llvm::MachineRegisterInfo::isAllocatable(), llvm::MachineInstr::isDebugValue(), llvm::MachineOperand::isImplicit(), llvm::MachineInstr::isKill(), llvm::AggressiveAntiDepState::IsLive(), llvm::SUnit::Latency, llvm::A64CC::MI, llvm::AggressiveAntiDepState::RegisterReference::Operand, llvm::SDep::Output, P, llvm::SUnit::Preds, llvm::MachineOperand::setReg(), llvm::BitVector::test(), llvm::AggressiveAntiDepState::UnionGroups(), and llvm::AntiDepBreaker::UpdateDbgValue().
|
virtual |
Finish - Finish anti-dep breaking for a basic block.
Implements llvm::AntiDepBreaker.
Definition at line 184 of file AggressiveAntiDepBreaker.cpp.
|
virtual |
Observe - Update liveness information to account for the current instruction, which will not be scheduled.
Implements llvm::AntiDepBreaker.
Definition at line 189 of file AggressiveAntiDepBreaker.cpp.
References llvm::dbgs(), DEBUG, llvm::MachineInstr::dump(), llvm::AggressiveAntiDepState::GetDefIndices(), llvm::AggressiveAntiDepState::GetGroup(), llvm::MCRegisterInfo::getName(), llvm::MCRegisterInfo::getNumRegs(), llvm::AggressiveAntiDepState::IsLive(), and llvm::AggressiveAntiDepState::UnionGroups().
|
virtual |
Start - Initialize anti-dep breaking for a new basic block.
Implements llvm::AntiDepBreaker.
Definition at line 146 of file AggressiveAntiDepBreaker.cpp.
References llvm::MachineBasicBlock::back(), llvm::MachineBasicBlock::empty(), llvm::TargetRegisterInfo::getCalleeSavedRegs(), llvm::AggressiveAntiDepState::GetDefIndices(), llvm::MachineFunction::getFrameInfo(), llvm::AggressiveAntiDepState::GetKillIndices(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineFrameInfo::getPristineRegs(), I, llvm::MachineInstr::isReturn(), llvm::MCRegAliasIterator::isValid(), llvm::MachineBasicBlock::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), llvm::BitVector::test(), and llvm::AggressiveAntiDepState::UnionGroups().