LLVM 22.0.0git
MacroFusion.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/Compiler.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
 Check if the instr pair, FirstMI and SecondMI, should be fused together.

Functions

LLVM_ABI bool llvm::hasLessThanNumFused (const SUnit &SU, unsigned FuseLimit)
 Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit.
LLVM_ABI bool llvm::fuseInstructionPair (ScheduleDAGInstrs &DAG, SUnit &FirstSU, SUnit &SecondSU)
 Create an artificial edge between FirstSU and SecondSU.
LLVM_ABI 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.