LLVM  14.0.0git
Macros | Functions | Variables
AArch64FalkorHWPFFix.cpp File Reference
#include "AArch64.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
#include "AArch64TargetMachine.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/CodeGen/LiveRegUnits.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Metadata.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/DebugCounter.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <iterator>
#include <utility>
Include dependency graph for AArch64FalkorHWPFFix.cpp:

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 Optional< LoadInfogetLoadInfo (const MachineInstr &MI)
 
static 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
 

Macro Definition Documentation

◆ DEBUG_TYPE

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

Definition at line 57 of file AArch64FalkorHWPFFix.cpp.

Function Documentation

◆ DEBUG_COUNTER()

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

◆ getLoadInfo()

static Optional<LoadInfo> getLoadInfo ( const MachineInstr MI)
static

Definition at line 237 of file AArch64FalkorHWPFFix.cpp.

References MI, and llvm::None.

◆ getTag()

static Optional<unsigned> getTag ( const TargetRegisterInfo TRI,
const MachineInstr MI,
const LoadInfo LI 
)
static

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

aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late static false unsigned makeTag ( unsigned  Dest,
unsigned  Base,
unsigned  Offset 
)
static

Definition at line 233 of file AArch64FalkorHWPFFix.cpp.

References llvm::sampleprof::Base, and Offset.

Referenced by getTag().

◆ 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"   
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 113 of file AArch64FalkorHWPFFix.cpp.

◆ false

aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late false

Definition at line 114 of file AArch64FalkorHWPFFix.cpp.

◆ Fix

Falkor HW Prefetch Fix

Definition at line 114 of file AArch64FalkorHWPFFix.cpp.

◆ late

aarch64 falkor hwpf fix late

Definition at line 230 of file AArch64FalkorHWPFFix.cpp.

◆ Phase

aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late Phase