LLVM 20.0.0git
|
Post-process the DAG to create cluster edges between instrs that may be fused by the processor into a single operation. More...
#include "Target/ARM/ARMLatencyMutations.h"
Public Member Functions | |
ARMOverrideBypasses (const ARMBaseInstrInfo *t, AAResults *a) | |
void | apply (ScheduleDAGInstrs *DAGInstrs) override |
Public Member Functions inherited from llvm::ScheduleDAGMutation | |
virtual | ~ScheduleDAGMutation ()=default |
virtual void | apply (ScheduleDAGInstrs *DAG)=0 |
Protected Member Functions | |
unsigned | makeBundleAssumptions (SUnit &ISU, SDep &Dep) |
bool | memoryRAWHazard (SUnit &ISU, SDep &Dep, unsigned latency) |
Static Protected Member Functions | |
static void | setBidirLatencies (SUnit &SrcSU, SDep &SrcDep, unsigned latency) |
static bool | zeroOutputDependences (SUnit &ISU, SDep &Dep) |
Protected Attributes | |
const ARMBaseInstrInfo * | TII |
AAResults * | AA |
ScheduleDAGInstrs * | DAG = nullptr |
Post-process the DAG to create cluster edges between instrs that may be fused by the processor into a single operation.
Definition at line 27 of file ARMLatencyMutations.h.
|
inline |
Definition at line 29 of file ARMLatencyMutations.h.
|
overridevirtual |
Implements llvm::ScheduleDAGMutation.
Definition at line 953 of file ARMLatencyMutations.cpp.
References DAG, llvm::ScheduleDAG::ExitSU, llvm::SUnit::getInstr(), llvm::SUnit::isBoundaryNode(), and llvm::ScheduleDAG::SUnits.
Definition at line 529 of file ARMLatencyMutations.cpp.
References llvm::SUnit::getInstr(), llvm::MachineInstr::getOpcode(), llvm::SDep::getReg(), llvm::SDep::getSUnit(), llvm::SDep::isAssignedRegDep(), llvm::ARMBaseInstrInfo::isPredicated(), setBidirLatencies(), and TII.
|
protected |
Definition at line 553 of file ARMLatencyMutations.cpp.
References AA, llvm::AAResults::alias(), llvm::PseudoSourceValue::FixedStack, llvm::SUnit::getInstr(), llvm::SDep::getSUnit(), llvm::SDep::isNormalMemory(), llvm::MachineInstr::memoperands(), llvm::AliasResult::MustAlias, and setBidirLatencies().
|
staticprotected |
Definition at line 491 of file ARMLatencyMutations.cpp.
References llvm::SDep::getSUnit(), llvm::SUnit::Preds, llvm::Reverse, llvm::SUnit::setDepthDirty(), llvm::SUnit::setHeightDirty(), and llvm::SDep::setLatency().
Referenced by makeBundleAssumptions(), memoryRAWHazard(), and zeroOutputDependences().
Definition at line 513 of file ARMLatencyMutations.cpp.
References llvm::SDep::getKind(), llvm::SDep::Output, and setBidirLatencies().
|
protected |
Definition at line 39 of file ARMLatencyMutations.h.
Referenced by memoryRAWHazard().
|
protected |
Definition at line 40 of file ARMLatencyMutations.h.
Referenced by apply().
|
protected |
Definition at line 38 of file ARMLatencyMutations.h.
Referenced by makeBundleAssumptions().