LLVM 18.0.0git
|
#include <functional>
#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::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. | |
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< ScheduleDAGMutation > | llvm::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. | |
std::unique_ptr< ScheduleDAGMutation > | llvm::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. | |