16 #ifndef LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H
17 #define LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H
27 class RegisterClassInfo;
28 class TargetInstrInfo;
29 class TargetRegisterInfo;
30 class MachineFunction;
49 std::vector<const TargetRegisterClass*> Classes;
52 std::multimap<unsigned, MachineOperand *> RegRefs;
53 typedef std::multimap<unsigned, MachineOperand *>::const_iterator
58 std::vector<unsigned> KillIndices;
62 std::vector<unsigned> DefIndices;
77 unsigned BreakAntiDependencies(
const std::vector<SUnit>& SUnits,
80 unsigned InsertPosIndex,
86 unsigned InsertPosIndex)
override;
89 void FinishBlock()
override;
94 bool isNewRegClobberedByRefs(RegRefIter RegRefBegin,
97 unsigned findSuitableFreeRegister(RegRefIter RegRefBegin,
const HexagonInstrInfo * TII
This class works in conjunction with the post-RA scheduler to rename registers to break register anti...
TargetInstrInfo - Interface to description of machine instruction set.
unsigned const MachineRegisterInfo * MRI
static const unsigned End
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
Representation of each machine instruction.
std::vector< std::pair< MachineInstr *, MachineInstr * > > DbgValueVector