LLVM: lib/Target/AArch64/AArch64FalkorHWPFFix.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "aarch64-falkor-hwpf-fix"
Functions
STATISTIC (NumStridedLoadsMarked, "Number of strided loads marked")
STATISTIC (NumCollisionsAvoided, "Number of HW prefetch tag collisions avoided")
STATISTIC (NumCollisionsNotAvoided, "Number of HW prefetch tag collisions not avoided due to lack of registers")
DEBUG_COUNTER (FixCounter, "falkor-hwpf", "Controls which tag collisions are avoided")
INITIALIZE_PASS_BEGIN (FalkorMarkStridedAccessesLegacy, DEBUG_TYPE, "Falkor HW Prefetch Fix", false, false) INITIALIZE_PASS_END(FalkorMarkStridedAccessesLegacy
INITIALIZE_PASS_BEGIN (FalkorHWPFFix, "aarch64-falkor-hwpf-fix-late", "Falkor HW Prefetch Fix Late Phase", false, false) INITIALIZE_PASS_END(FalkorHWPFFix
aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late static false unsigned makeTag (unsigned Dest, unsigned Base, unsigned Offset)
static std::optional< LoadInfo > getLoadInfo (const MachineInstr &MI)
static std::optional< unsigned > getTag (const TargetRegisterInfo *TRI, const MachineInstr &MI, const LoadInfo &LI)
Variables
DEBUG_TYPE
Falkor HW Prefetch Fix
Falkor HW Prefetch false
aarch64 falkor hwpf fix late
aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late Phase

DEBUG_TYPE

#define DEBUG_TYPE "aarch64-falkor-hwpf-fix"

DEBUG_COUNTER()

DEBUG_COUNTER ( FixCounter ,
"falkor-hwpf" ,
"Controls which tag collisions are avoided" )

getLoadInfo()

getTag()

Definition at line 650 of file AArch64FalkorHWPFFix.cpp.

References llvm::sampleprof::Base, llvm::MachineOperand::getImm(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isCPI(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isSymbol(), makeTag(), MI, and TRI.

Referenced by llvm::DWARF5AccelTableData::DWARF5AccelTableData(), llvm::MDNodeKeyImpl< DIBasicType >::MDNodeKeyImpl(), llvm::MDNodeKeyImpl< DICompositeType >::MDNodeKeyImpl(), llvm::MDNodeKeyImpl< DIFixedPointType >::MDNodeKeyImpl(), llvm::MDNodeKeyImpl< DIImportedEntity >::MDNodeKeyImpl(), llvm::MDNodeKeyImpl< DIStringType >::MDNodeKeyImpl(), llvm::MDNodeKeyImpl< DITemplateValueParameter >::MDNodeKeyImpl(), and llvm::MDNodeKeyImpl< GenericDINode >::MDNodeKeyImpl().

INITIALIZE_PASS_BEGIN() [1/2]

INITIALIZE_PASS_BEGIN ( FalkorHWPFFix ,
"aarch64-falkor-hwpf-fix-late" ,
"Falkor HW Prefetch Fix Late Phase" ,
false ,
false )

INITIALIZE_PASS_BEGIN() [2/2]

INITIALIZE_PASS_BEGIN ( FalkorMarkStridedAccessesLegacy ,
DEBUG_TYPE ,
"Falkor HW Prefetch Fix" ,
false ,
false )

makeTag()

STATISTIC() [1/3]

STATISTIC ( NumCollisionsAvoided ,
"Number of HW prefetch tag collisions avoided" )

STATISTIC() [2/3]

STATISTIC ( NumCollisionsNotAvoided ,
"Number of HW prefetch tag collisions not avoided due to lack of registers" )

STATISTIC() [3/3]

STATISTIC ( NumStridedLoadsMarked ,
"Number of strided loads marked" )

DEBUG_TYPE

false

Fix

late

aarch64 falkor hwpf fix late

Phase

Definition at line 222 of file AArch64FalkorHWPFFix.cpp.

Referenced by buildCoroWrapper(), llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildModuleInlinerPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), llvm::createIGroupLPDAGMutation(), ExpandBVWithShuffles(), llvm::PassBuilder::invokeOptimizerEarlyEPCallbacks(), llvm::PassBuilder::invokeOptimizerLastEPCallbacks(), llvm::PassBuilder::invokePipelineEarlySimplificationEPCallbacks(), isLTOPostLink(), isLTOPreLink(), llvm::PassBuilder::registerOptimizerEarlyEPCallback(), and llvm::AMDGPUTargetMachine::registerPassBuilderCallbacks().