16 #ifndef LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H 17 #define LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H 27 class MachineBasicBlock;
28 class MachineFunction;
31 class MachineRegisterInfo;
32 class RegisterClassInfo;
33 class TargetInstrInfo;
34 class TargetRegisterClass;
35 class TargetRegisterInfo;
54 std::vector<const TargetRegisterClass *> Classes;
57 std::multimap<unsigned, MachineOperand *> RegRefs;
60 std::multimap<unsigned, MachineOperand *>::const_iterator;
64 std::vector<unsigned> KillIndices;
68 std::vector<unsigned> DefIndices;
83 unsigned BreakAntiDependencies(
const std::vector<SUnit> &SUnits,
86 unsigned InsertPosIndex,
92 unsigned InsertPosIndex)
override;
95 void FinishBlock()
override;
100 bool isNewRegClobberedByRefs(RegRefIter RegRefBegin,
101 RegRefIter RegRefEnd,
103 unsigned findSuitableFreeRegister(RegRefIter RegRefBegin,
104 RegRefIter RegRefEnd,
113 #endif // LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H This class represents lattice values for constants.
unsigned const TargetRegisterInfo * TRI
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.
std::vector< std::pair< MachineInstr *, MachineInstr * > > DbgValueVector
unsigned const MachineRegisterInfo * MRI
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.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...