LLVM
16.0.0git
|
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/ProfileData/InstrProfData.inc"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Transforms/Instrumentation/PGOInstrumentation.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include <cassert>
#include <cstdint>
#include <vector>
Go to the source code of this file.
Macros | |
#define | INSTR_PROF_VALUE_PROF_MEMOP_API |
#define | DEBUG_TYPE "pgo-memop-opt" |
Functions | |
STATISTIC (NumOfPGOMemOPOpt, "Number of memop intrinsics optimized.") | |
STATISTIC (NumOfPGOMemOPAnnotate, "Number of memop intrinsics annotated.") | |
static bool | PGOMemOPSizeOptImpl (Function &F, BlockFrequencyInfo &BFI, OptimizationRemarkEmitter &ORE, DominatorTree *DT, TargetLibraryInfo &TLI) |
Variables | |
static cl::opt< unsigned > | MemOPCountThreshold ("pgo-memop-count-threshold", cl::Hidden, cl::init(1000), cl::desc("The minimum count to optimize memory " "intrinsic calls")) |
static cl::opt< bool > | DisableMemOPOPT ("disable-memop-opt", cl::init(false), cl::Hidden, cl::desc("Disable optimize")) |
static cl::opt< unsigned > | MemOPPercentThreshold ("pgo-memop-percent-threshold", cl::init(40), cl::Hidden, cl::desc("The percentage threshold for the " "memory intrinsic calls optimization")) |
static cl::opt< unsigned > | MemOPMaxVersion ("pgo-memop-max-version", cl::init(3), cl::Hidden, cl::desc("The max version for the optimized memory " " intrinsic calls")) |
static cl::opt< bool > | MemOPScaleCount ("pgo-memop-scale-count", cl::init(true), cl::Hidden, cl::desc("Scale the memop size counts using the basic " " block count value")) |
cl::opt< bool > | MemOPOptMemcmpBcmp ("pgo-memop-optimize-memcmp-bcmp", cl::init(true), cl::Hidden, cl::desc("Size-specialize memcmp and bcmp calls")) |
static cl::opt< unsigned > | MemOpMaxOptSize ("memop-value-prof-max-opt-size", cl::Hidden, cl::init(128), cl::desc("Optimize the memop size <= this value")) |
#define DEBUG_TYPE "pgo-memop-opt" |
Definition at line 52 of file PGOMemOPSizeOpt.cpp.
#define INSTR_PROF_VALUE_PROF_MEMOP_API |
Definition at line 37 of file PGOMemOPSizeOpt.cpp.
|
static |
Definition at line 461 of file PGOMemOPSizeOpt.cpp.
References llvm::AMDGPUISD::BFI, DisableMemOPOPT, and F.
Referenced by llvm::PGOMemOPSizeOpt::run().
STATISTIC | ( | NumOfPGOMemOPAnnotate | , |
"Number of memop intrinsics annotated." | |||
) |
STATISTIC | ( | NumOfPGOMemOPOpt | , |
"Number of memop intrinsics optimized." | |||
) |
|
static |
Referenced by PGOMemOPSizeOptImpl().
|
static |
|
static |
|
static |
cl::opt<bool> MemOPOptMemcmpBcmp("pgo-memop-optimize-memcmp-bcmp", cl::init(true), cl::Hidden, cl::desc("Size-specialize memcmp and bcmp calls")) |
|
static |