LLVM  14.0.0git
Namespaces | Typedefs | Functions
MacroFusion.h File Reference
#include <functional>
#include <memory>
Include dependency graph for MacroFusion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 

Typedefs

using llvm::ShouldSchedulePredTy = std::function< bool(const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)>
 Check if the instr pair, FirstMI and SecondMI, should be fused together. More...
 

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. More...
 
bool llvm::fuseInstructionPair (ScheduleDAGInstrs &DAG, SUnit &FirstSU, SUnit &SecondSU)
 Create an artificial edge between FirstSU and SecondSU. More...
 
std::unique_ptr< ScheduleDAGMutationllvm::createMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent)
 Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More...
 
std::unique_ptr< ScheduleDAGMutationllvm::createBranchMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent)
 Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More...