LLVM 20.0.0git
|
#include "llvm/CodeGen/ExpandMemCmp.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/LazyBlockFrequencyInfo.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/InitializePasses.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/SizeOpts.h"
#include <optional>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "expand-memcmp" |
Functions | |
STATISTIC (NumMemCmpCalls, "Number of memcmp calls") | |
STATISTIC (NumMemCmpNotConstant, "Number of memcmp calls without constant size") | |
STATISTIC (NumMemCmpGreaterThanMax, "Number of memcmp calls with size greater than max size") | |
STATISTIC (NumMemCmpInlined, "Number of inlined memcmp calls") | |
INITIALIZE_PASS_BEGIN (ExpandMemCmpLegacyPass, DEBUG_TYPE, "Expand memcmp() to load/stores", false, false) INITIALIZE_PASS_END(ExpandMemCmpLegacyPass | |
Expand | memcmp () to load/stores" |
Variables | |
static cl::opt< unsigned > | MemCmpEqZeroNumLoadsPerBlock ("memcmp-num-loads-per-block", cl::Hidden, cl::init(1), cl::desc("The number of loads per basic block for inline expansion of " "memcmp that is only being compared against zero.")) |
static cl::opt< unsigned > | MaxLoadsPerMemcmp ("max-loads-per-memcmp", cl::Hidden, cl::desc("Set maximum number of loads used in expanded memcmp")) |
static cl::opt< unsigned > | MaxLoadsPerMemcmpOptSize ("max-loads-per-memcmp-opt-size", cl::Hidden, cl::desc("Set maximum number of loads used in expanded memcmp for -Os/Oz")) |
DEBUG_TYPE | |
Expand | false |
#define DEBUG_TYPE "expand-memcmp" |
Definition at line 42 of file ExpandMemCmp.cpp.
INITIALIZE_PASS_BEGIN | ( | ExpandMemCmpLegacyPass | , |
DEBUG_TYPE | , | ||
"Expand memcmp() to load/stores" | , | ||
false | , | ||
false | |||
) |
Expand memcmp | ( | ) |
STATISTIC | ( | NumMemCmpCalls | , |
"Number of memcmp calls" | |||
) |
STATISTIC | ( | NumMemCmpGreaterThanMax | , |
"Number of memcmp calls with size greater than max size" | |||
) |
STATISTIC | ( | NumMemCmpInlined | , |
"Number of inlined memcmp calls" | |||
) |
STATISTIC | ( | NumMemCmpNotConstant | , |
"Number of memcmp calls without constant size" | |||
) |
DEBUG_TYPE |
Definition at line 1019 of file ExpandMemCmp.cpp.
Expand false |
Definition at line 1020 of file ExpandMemCmp.cpp.
|
static |
|
static |
|
static |