LLVM 19.0.0git
Namespaces | Functions
ARMMacroFusion.cpp File Reference
#include "ARMMacroFusion.h"
#include "ARMSubtarget.h"
#include "llvm/CodeGen/MacroFusion.h"
#include "llvm/CodeGen/TargetInstrInfo.h"

Go to the source code of this file.


namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.


static bool llvm::isAESPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI)
static bool llvm::isLiteralsPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI)
static bool llvm::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 > llvm::createARMMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect.