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) |
◆ 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().