28 return FirstMI ==
nullptr || FirstMI->
getOpcode() == ARM::AESE;
31 return FirstMI ==
nullptr || FirstMI->
getOpcode() == ARM::AESD;
41 if ((FirstMI ==
nullptr || FirstMI->
getOpcode() == ARM::MOVi16) &&
57 if (ST.hasFuseAES() &&
isAESPair(FirstMI, SecondMI))
const HexagonInstrInfo * TII
Representation of each machine instruction.
unsigned getOpcode() const
Returns the opcode of this MachineInstr.
TargetInstrInfo - Interface to description of machine instruction set.
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
static bool isAESPair(const MachineInstr *FirstMI, const MachineInstr &SecondMI)
std::unique_ptr< ScheduleDAGMutation > createMacroFusionDAGMutation(ArrayRef< MacroFusionPredTy > Predicates, bool BranchOnly=false)
Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit acco...
std::unique_ptr< ScheduleDAGMutation > createARMMacroFusionDAGMutation()
Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::crea...
static bool isLiteralsPair(const MachineInstr *FirstMI, const MachineInstr &SecondMI)
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.