Add options for MaxLoadsPerMemcmp(OptSize).
Reviewers: davidxl Reviewed By: davidxl Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60587 llvm-svn: 358287
This commit is contained in:
parent
6c8f4ada36
commit
c27ff0d32d
|
@ -36,6 +36,14 @@ static cl::opt<unsigned> MemCmpEqZeroNumLoadsPerBlock(
|
||||||
cl::desc("The number of loads per basic block for inline expansion of "
|
cl::desc("The number of loads per basic block for inline expansion of "
|
||||||
"memcmp that is only being compared against zero."));
|
"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"));
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
||||||
|
@ -741,8 +749,13 @@ static bool expandMemCmp(CallInst *CI, const TargetTransformInfo *TTI,
|
||||||
const auto *const Options = TTI->enableMemCmpExpansion(IsUsedForZeroCmp);
|
const auto *const Options = TTI->enableMemCmpExpansion(IsUsedForZeroCmp);
|
||||||
if (!Options) return false;
|
if (!Options) return false;
|
||||||
|
|
||||||
const unsigned MaxNumLoads =
|
const unsigned MaxNumLoads = CI->getFunction()->hasOptSize()
|
||||||
TLI->getMaxExpandSizeMemcmp(CI->getFunction()->hasOptSize());
|
? (MaxLoadsPerMemcmpOptSize.getNumOccurrences()
|
||||||
|
? MaxLoadsPerMemcmpOptSize
|
||||||
|
: TLI->getMaxExpandSizeMemcmp(true))
|
||||||
|
: (MaxLoadsPerMemcmp.getNumOccurrences()
|
||||||
|
? MaxLoadsPerMemcmp
|
||||||
|
: TLI->getMaxExpandSizeMemcmp(false));
|
||||||
|
|
||||||
unsigned NumLoadsPerBlock = MemCmpEqZeroNumLoadsPerBlock.getNumOccurrences()
|
unsigned NumLoadsPerBlock = MemCmpEqZeroNumLoadsPerBlock.getNumOccurrences()
|
||||||
? MemCmpEqZeroNumLoadsPerBlock
|
? MemCmpEqZeroNumLoadsPerBlock
|
||||||
|
|
Loading…
Reference in New Issue