diff options
Diffstat (limited to 'llvm/lib/CodeGen/TargetPassConfig.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 481baea2dff..329768769f1 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -94,6 +94,10 @@ static cl::opt<bool> EnableImplicitNullChecks(      "enable-implicit-null-checks",      cl::desc("Fold null checks into faulting memory operations"),      cl::init(false)); +static cl::opt<bool> EnableMergeICmps( +    "enable-mergeicmps", +    cl::desc("Merge ICmp chains into a single memcmp"), +    cl::init(false));  static cl::opt<bool> PrintLSR("print-lsr-output", cl::Hidden,      cl::desc("Print LLVM IR produced by the loop-reduce pass"));  static cl::opt<bool> PrintISelInput("print-isel-input", cl::Hidden, @@ -591,6 +595,10 @@ void TargetPassConfig::addIRPasses() {        addPass(createPrintFunctionPass(dbgs(), "\n\n*** Code after LSR ***\n"));    } +  if (getOptLevel() != CodeGenOpt::None && EnableMergeICmps) { +    addPass(createMergeICmpsPass()); +  } +    // Run GC lowering passes for builtin collectors    // TODO: add a pass insertion point here    addPass(createGCLoweringPass());  | 

