|
LLVM
4.0.0
|
#include <AggressiveAntiDepBreaker.h>
Public Member Functions | |
| AggressiveAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI, TargetSubtargetInfo::RegClassVector &CriticalPathRCs) | |
| ~AggressiveAntiDepBreaker () 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... | |
Additional Inherited Members | |
Public Types inherited from llvm::AntiDepBreaker | |
| typedef std::vector< std::pair < MachineInstr *, MachineInstr * > > | DbgValueVector |
Definition at line 111 of file AggressiveAntiDepBreaker.h.
| AggressiveAntiDepBreaker::AggressiveAntiDepBreaker | ( | MachineFunction & | MFi, |
| const RegisterClassInfo & | RCI, | ||
| TargetSubtargetInfo::RegClassVector & | CriticalPathRCs | ||
| ) |
Definition at line 113 of file AggressiveAntiDepBreaker.cpp.
References llvm::dbgs(), DEBUG, llvm::BitVector::find_first(), llvm::BitVector::find_next(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::MCRegisterInfo::getName(), i, llvm::BitVector::none(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
|
override |
Definition at line 137 of file AggressiveAntiDepBreaker.cpp.
|
overridevirtual |
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 735 of file AggressiveAntiDepBreaker.cpp.
References llvm::SDep::Anti, AntiDepEdges(), llvm::BitVector::any(), assert(), CriticalPathStep(), llvm::SDep::Data, llvm::dbgs(), DEBUG, llvm::MachineInstr::dump(), E, 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, i, llvm::MachineInstr::isDebugValue(), llvm::MachineOperand::isImplicit(), llvm::MachineInstr::isKill(), llvm::AggressiveAntiDepState::IsLive(), llvm::MCRegAliasIterator::isValid(), llvm::SUnit::Latency, llvm::make_range(), MI, MRI, llvm::SDep::Output, P, llvm::SUnit::Preds, llvm::SUnit::Succs, llvm::BitVector::test(), llvm::AggressiveAntiDepState::UnionGroups(), and llvm::AntiDepBreaker::UpdateDbgValue().
|
overridevirtual |
Finish anti-dep breaking for a basic block.
Implements llvm::AntiDepBreaker.
Definition at line 178 of file AggressiveAntiDepBreaker.cpp.
|
overridevirtual |
Update liveness information to account for the current instruction, which will not be scheduled.
Implements llvm::AntiDepBreaker.
Definition at line 183 of file AggressiveAntiDepBreaker.cpp.
References assert(), 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().
|
overridevirtual |
Initialize anti-dep breaking for a new basic block.
Implements llvm::AntiDepBreaker.
Definition at line 141 of file AggressiveAntiDepBreaker.cpp.
References assert(), llvm::TargetRegisterInfo::getCalleeSavedRegs(), llvm::AggressiveAntiDepState::GetDefIndices(), llvm::MachineFunction::getFrameInfo(), llvm::AggressiveAntiDepState::GetKillIndices(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineFrameInfo::getPristineRegs(), I, llvm::MachineBasicBlock::isReturnBlock(), llvm::MCRegAliasIterator::isValid(), SI, llvm::MachineBasicBlock::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), llvm::BitVector::test(), and llvm::AggressiveAntiDepState::UnionGroups().
1.8.6