LLVM: lib/CodeGen/ExpandMemCmp.cpp File Reference (original) (raw)

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

DEBUG_TYPE

#define DEBUG_TYPE "expand-memcmp"

INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( ExpandMemCmpLegacyPass ,
DEBUG_TYPE ,
"Expand memcmp() to load/stores" ,
false ,
false )

memcmp()

STATISTIC() [1/4]

STATISTIC ( NumMemCmpCalls ,
"Number of memcmp calls" )

STATISTIC() [2/4]

STATISTIC ( NumMemCmpGreaterThanMax ,
"Number of memcmp calls with size greater than max size" )

STATISTIC() [3/4]

STATISTIC ( NumMemCmpInlined ,
"Number of inlined memcmp calls" )

STATISTIC() [4/4]

STATISTIC ( NumMemCmpNotConstant ,
"Number of memcmp calls without constant size" )

DEBUG_TYPE

false

MaxLoadsPerMemcmp

MaxLoadsPerMemcmpOptSize

MemCmpEqZeroNumLoadsPerBlock