LLVM 19.0.0git
Namespaces | Typedefs | Functions
MacroFusion.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include <memory>

Go to the source code of this file.

Namespaces

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

Typedefs

using llvm::MacroFusionPredTy = bool(*)(const TargetInstrInfo &TII, const TargetSubtargetInfo &STI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)
 Check if the instr pair, FirstMI and SecondMI, should be fused together.
 

Functions

bool llvm::hasLessThanNumFused (const SUnit &SU, unsigned FuseLimit)
 Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit.
 
bool llvm::fuseInstructionPair (ScheduleDAGInstrs &DAG, SUnit &FirstSU, SUnit &SecondSU)
 Create an artificial edge between FirstSU and SecondSU.
 
std::unique_ptr< ScheduleDAGMutationllvm::createMacroFusionDAGMutation (ArrayRef< MacroFusionPredTy > Predicates, bool BranchOnly=false)
 Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific predicate functions.