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) override |
Start - 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 |
void | Observe (MachineInstr *MI, unsigned Count, unsigned InsertPosIndex) override |
void | FinishBlock () override |
Finish - Finish anti-dep breaking for a basic block. |
Class AggressiveAntiDepBreaker.
Definition at line 117 of file AggressiveAntiDepBreaker.h.
AggressiveAntiDepBreaker::AggressiveAntiDepBreaker | ( | MachineFunction & | MFi, |
const RegisterClassInfo & | RCI, | ||
TargetSubtargetInfo::RegClassVector & | CriticalPathRCs | ||
) |
Definition at line 114 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().
Definition at line 138 of file AggressiveAntiDepBreaker.cpp.
unsigned AggressiveAntiDepBreaker::BreakAntiDependencies | ( | const std::vector< SUnit > & | SUnits, |
MachineBasicBlock::iterator | Begin, | ||
MachineBasicBlock::iterator | End, | ||
unsigned | InsertPosIndex, | ||
DbgValueVector & | DbgValues | ||
) | [override, 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 705 of file AggressiveAntiDepBreaker.cpp.
References llvm::SDep::Anti, AntiDepEdges(), llvm::BitVector::any(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), CriticalPathStep(), llvm::SDep::Data, llvm::dbgs(), DEBUG, llvm::MachineInstr::dump(), llvm::SmallVectorTemplateCommon< T, typename >::end(), 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::AArch64CC::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().
void AggressiveAntiDepBreaker::FinishBlock | ( | ) | [override, virtual] |
Finish - Finish anti-dep breaking for a basic block.
Implements llvm::AntiDepBreaker.
Definition at line 180 of file AggressiveAntiDepBreaker.cpp.
void AggressiveAntiDepBreaker::Observe | ( | MachineInstr * | MI, |
unsigned | Count, | ||
unsigned | InsertPosIndex | ||
) | [override, virtual] |
Observe - Update liveness information to account for the current instruction, which will not be scheduled.
Implements llvm::AntiDepBreaker.
Definition at line 185 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().
void AggressiveAntiDepBreaker::StartBlock | ( | MachineBasicBlock * | BB | ) | [override, virtual] |
Start - Initialize anti-dep breaking for a new basic block.
Implements llvm::AntiDepBreaker.
Definition at line 142 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().