15 #ifndef LLVM_CODEGEN_MACROFUSION_H 16 #define LLVM_CODEGEN_MACROFUSION_H 24 class ScheduleDAGMutation;
25 class TargetInstrInfo;
26 class TargetSubtargetInfo;
32 const TargetSubtargetInfo &TSI,
33 const MachineInstr *FirstMI,
39 std::unique_ptr<ScheduleDAGMutation>
45 std::unique_ptr<ScheduleDAGMutation>
50 #endif // LLVM_CODEGEN_MACROFUSION_H This class represents lattice values for constants.
const HexagonInstrInfo * TII
std::unique_ptr< ScheduleDAGMutation > createMacroFusionDAGMutation(ShouldSchedulePredTy shouldScheduleAdjacent)
Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit acco...
std::function< bool(const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)> ShouldSchedulePredTy
Check if the instr pair, FirstMI and SecondMI, should be fused together.
static bool shouldScheduleAdjacent(const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)
Check if the instr pair, FirstMI and SecondMI, should be fused together.
std::unique_ptr< ScheduleDAGMutation > createBranchMacroFusionDAGMutation(ShouldSchedulePredTy shouldScheduleAdjacent)
Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to b...
Representation of each machine instruction.
print Print MemDeps of function