16 #ifndef LLVM_CODEGEN_CRITICALANTIDEPBREAKER_H
17 #define LLVM_CODEGEN_CRITICALANTIDEPBREAKER_H
30 class RegisterClassInfo;
31 class TargetInstrInfo;
32 class TargetRegisterInfo;
51 std::vector<const TargetRegisterClass*> Classes;
54 std::multimap<unsigned, MachineOperand *> RegRefs;
55 typedef std::multimap<unsigned, MachineOperand *>::const_iterator
60 std::vector<unsigned> KillIndices;
64 std::vector<unsigned> DefIndices;
84 unsigned InsertPosIndex,
98 bool isNewRegClobberedByRefs(RegRefIter RegRefBegin,
101 unsigned findSuitableFreeRegister(RegRefIter RegRefBegin,
102 RegRefIter RegRefEnd,
void Observe(MachineInstr *MI, unsigned Count, unsigned InsertPosIndex)
void FinishBlock()
Finish - Finish anti-dep breaking for a basic block.
void StartBlock(MachineBasicBlock *BB)
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)
bundle_iterator< MachineInstr, instr_iterator > iterator
CriticalAntiDepBreaker(MachineFunction &MFi, const RegisterClassInfo &)
~CriticalAntiDepBreaker()
std::vector< std::pair< MachineInstr *, MachineInstr * > > DbgValueVector