about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--lib/Module/Optimize.cpp163
-rw-r--r--test/Feature/BitcastAlias.leq36.ll2
-rw-r--r--test/Feature/BitcastAlias.leq37.ll2
-rw-r--r--test/Feature/BitcastAlias.ll2
-rw-r--r--test/Feature/BitcastAliasMD2U.leq36.ll2
-rw-r--r--test/Feature/BitcastAliasMD2U.leq37.ll2
-rw-r--r--test/Feature/BitcastAliasMD2U.ll2
-rw-r--r--test/Feature/ConstantArray.leq36.ll2
-rw-r--r--test/Feature/ConstantArray.ll2
-rw-r--r--test/Feature/ConstantStruct.leq36.ll2
-rw-r--r--test/Feature/ConstantStruct.ll2
-rw-r--r--test/Feature/GetElementPtr.leq36.ll2
-rw-r--r--test/Feature/GetElementPtr.ll2
-rw-r--r--test/Feature/ImpliedValue.c.failing2
-rw-r--r--test/Feature/InsertExtractValue.leq36.ll2
-rw-r--r--test/Feature/InsertExtractValue.ll2
-rw-r--r--test/Feature/IntrinsicTrap.ll2
-rw-r--r--test/Feature/Overflow.leq36.ll2
-rw-r--r--test/Feature/Overflow.ll2
-rw-r--r--test/Feature/OverflowMul.leq36.ll2
-rw-r--r--test/Feature/OverflowMul.ll2
-rw-r--r--test/Intrinsics/objectsize.leq36.ll2
-rw-r--r--test/Intrinsics/objectsize.leq49.ll2
-rw-r--r--test/Intrinsics/objectsize.ll2
24 files changed, 92 insertions, 117 deletions
diff --git a/lib/Module/Optimize.cpp b/lib/Module/Optimize.cpp
index e0a8fc41..ff04573e 100644
--- a/lib/Module/Optimize.cpp
+++ b/lib/Module/Optimize.cpp
@@ -61,10 +61,6 @@ static cl::opt<bool> DontVerify("disable-verify", cl::ReallyHidden);
 static cl::opt<bool> DisableInline("disable-inlining",
   cl::desc("Do not run the inliner pass"));
 
-static cl::opt<bool>
-DisableOptimizations("disable-opt",
-  cl::desc("Do not run any optimization passes"));
-
 static cl::opt<bool> DisableInternalize("disable-internalize",
   cl::desc("Do not mark all symbols as internal"));
 
@@ -108,8 +104,6 @@ static void AddStandardCompilePasses(klee::LegacyLLVMPassManagerTy &PM) {
   if (StripDebug)
     addPass(PM, createStripSymbolsPass(true));
 
-  if (DisableOptimizations) return;
-
   addPass(PM, createCFGSimplificationPass());    // Clean up disgusting code
   addPass(PM, createPromoteMemoryToRegisterPass());// Kill useless allocas
   addPass(PM, createGlobalOptimizerPass());      // Optimize out global vars
@@ -204,100 +198,98 @@ void Optimize(Module *M, llvm::ArrayRef<const char *> preservedFunctions) {
   // DWD - Run the opt standard pass list as well.
   AddStandardCompilePasses(Passes);
 
-  if (!DisableOptimizations) {
-    // Now that composite has been compiled, scan through the module, looking
-    // for a main function.  If main is defined, mark all other functions
-    // internal.
-    if (!DisableInternalize) {
+  // Now that composite has been compiled, scan through the module, looking
+  // for a main function.  If main is defined, mark all other functions
+  // internal.
+  if (!DisableInternalize) {
 #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 9)
-      auto PreserveFunctions = [=](const GlobalValue &GV) {
-        StringRef GVName = GV.getName();
+    auto PreserveFunctions = [=](const GlobalValue &GV) {
+      StringRef GVName = GV.getName();
 
-        for (const char *fun: preservedFunctions)
-          if (GVName.equals(fun))
-            return true;
+      for (const char *fun : preservedFunctions)
+        if (GVName.equals(fun))
+          return true;
 
-        return false;
-      };
-      ModulePass *pass = createInternalizePass(PreserveFunctions);
+      return false;
+    };
+    ModulePass *pass = createInternalizePass(PreserveFunctions);
 #else
-      ModulePass *pass = createInternalizePass(preservedFunctions);
+    ModulePass *pass = createInternalizePass(preservedFunctions);
 #endif
-      addPass(Passes, pass);
-    }
+    addPass(Passes, pass);
+  }
 
-    // Propagate constants at call sites into the functions they call.  This
-    // opens opportunities for globalopt (and inlining) by substituting function
-    // pointers passed as arguments to direct uses of functions.  
-    addPass(Passes, createIPSCCPPass());
+  // Propagate constants at call sites into the functions they call.  This
+  // opens opportunities for globalopt (and inlining) by substituting function
+  // pointers passed as arguments to direct uses of functions.
+  addPass(Passes, createIPSCCPPass());
 
-    // Now that we internalized some globals, see if we can hack on them!
-    addPass(Passes, createGlobalOptimizerPass());
+  // Now that we internalized some globals, see if we can hack on them!
+  addPass(Passes, createGlobalOptimizerPass());
 
-    // Linking modules together can lead to duplicated global constants, only
-    // keep one copy of each constant...
-    addPass(Passes, createConstantMergePass());
+  // Linking modules together can lead to duplicated global constants, only
+  // keep one copy of each constant...
+  addPass(Passes, createConstantMergePass());
 
-    // Remove unused arguments from functions...
-    addPass(Passes, createDeadArgEliminationPass());
+  // Remove unused arguments from functions...
+  addPass(Passes, createDeadArgEliminationPass());
 
-    // Reduce the code after globalopt and ipsccp.  Both can open up significant
-    // simplification opportunities, and both can propagate functions through
-    // function pointers.  When this happens, we often have to resolve varargs
-    // calls, etc, so let instcombine do this.
-    addPass(Passes, createInstructionCombiningPass());
+  // Reduce the code after globalopt and ipsccp.  Both can open up significant
+  // simplification opportunities, and both can propagate functions through
+  // function pointers.  When this happens, we often have to resolve varargs
+  // calls, etc, so let instcombine do this.
+  addPass(Passes, createInstructionCombiningPass());
 
-    if (!DisableInline)
-      addPass(Passes, createFunctionInliningPass()); // Inline small functions
+  if (!DisableInline)
+    addPass(Passes, createFunctionInliningPass()); // Inline small functions
 
-    addPass(Passes, createPruneEHPass());            // Remove dead EH info
-    addPass(Passes, createGlobalOptimizerPass());    // Optimize globals again.
-    addPass(Passes, createGlobalDCEPass());          // Remove dead functions
+  addPass(Passes, createPruneEHPass());         // Remove dead EH info
+  addPass(Passes, createGlobalOptimizerPass()); // Optimize globals again.
+  addPass(Passes, createGlobalDCEPass());       // Remove dead functions
 
-    // If we didn't decide to inline a function, check to see if we can
-    // transform it to pass arguments by value instead of by reference.
-    addPass(Passes, createArgumentPromotionPass());
+  // If we didn't decide to inline a function, check to see if we can
+  // transform it to pass arguments by value instead of by reference.
+  addPass(Passes, createArgumentPromotionPass());
 
-    // The IPO passes may leave cruft around.  Clean up after them.
-    addPass(Passes, createInstructionCombiningPass());
-    addPass(Passes, createJumpThreadingPass());        // Thread jumps.
+  // The IPO passes may leave cruft around.  Clean up after them.
+  addPass(Passes, createInstructionCombiningPass());
+  addPass(Passes, createJumpThreadingPass()); // Thread jumps.
 #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 9)
-    addPass(Passes, createSROAPass());                 // Break up allocas
+  addPass(Passes, createSROAPass()); // Break up allocas
 #else
-    addPass(Passes, createScalarReplAggregatesPass()); // Break up allocas
+  addPass(Passes, createScalarReplAggregatesPass()); // Break up allocas
 #endif
 
-    // Run a few AA driven optimizations here and now, to cleanup the code.
+  // Run a few AA driven optimizations here and now, to cleanup the code.
 #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8)
 #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 9)
-    addPass(Passes, createPostOrderFunctionAttrsLegacyPass());
+  addPass(Passes, createPostOrderFunctionAttrsLegacyPass());
 #else
-    addPass(Passes, createPostOrderFunctionAttrsPass());
+  addPass(Passes, createPostOrderFunctionAttrsPass());
 #endif
-    addPass(Passes, createReversePostOrderFunctionAttrsPass()); // Add nocapture
-    addPass(Passes, createGlobalsAAWrapperPass());   // IP alias analysis
+  addPass(Passes, createReversePostOrderFunctionAttrsPass()); // Add nocapture
+  addPass(Passes, createGlobalsAAWrapperPass()); // IP alias analysis
 #else
-    addPass(Passes, createFunctionAttrsPass());      // Add nocapture
-    addPass(Passes, createGlobalsModRefPass());      // IP alias analysis
+  addPass(Passes, createFunctionAttrsPass());        // Add nocapture
+  addPass(Passes, createGlobalsModRefPass());        // IP alias analysis
 #endif
 
-    addPass(Passes, createLICMPass());               // Hoist loop invariants
-    addPass(Passes, createGVNPass());                // Remove redundancies
-    addPass(Passes, createMemCpyOptPass());          // Remove dead memcpy's
-    addPass(Passes, createDeadStoreEliminationPass()); // Nuke dead stores
+  addPass(Passes, createLICMPass());                 // Hoist loop invariants
+  addPass(Passes, createGVNPass());                  // Remove redundancies
+  addPass(Passes, createMemCpyOptPass());            // Remove dead memcpy's
+  addPass(Passes, createDeadStoreEliminationPass()); // Nuke dead stores
 
-    // Cleanup and simplify the code after the scalar optimizations.
-    addPass(Passes, createInstructionCombiningPass());
+  // Cleanup and simplify the code after the scalar optimizations.
+  addPass(Passes, createInstructionCombiningPass());
 
-    addPass(Passes, createJumpThreadingPass());        // Thread jumps.
-    addPass(Passes, createPromoteMemoryToRegisterPass()); // Cleanup jumpthread.
-    
-    // Delete basic blocks, which optimization passes may have killed...
-    addPass(Passes, createCFGSimplificationPass());
+  addPass(Passes, createJumpThreadingPass());           // Thread jumps.
+  addPass(Passes, createPromoteMemoryToRegisterPass()); // Cleanup jumpthread.
 
-    // Now that we have optimized the program, discard unreachable functions...
-    addPass(Passes, createGlobalDCEPass());
-  }
+  // Delete basic blocks, which optimization passes may have killed...
+  addPass(Passes, createCFGSimplificationPass());
+
+  // Now that we have optimized the program, discard unreachable functions...
+  addPass(Passes, createGlobalDCEPass());
 
   // If the -s or -S command line options were specified, strip the symbols out
   // of the resulting program to make it smaller.  -s and -S are GNU ld options
@@ -305,27 +297,11 @@ void Optimize(Module *M, llvm::ArrayRef<const char *> preservedFunctions) {
   if (Strip || StripDebug)
     addPass(Passes, createStripSymbolsPass(StripDebug && !Strip));
 
-#if 0
-  // Create a new optimization pass for each one specified on the command line
-  std::auto_ptr<TargetMachine> target;
-  for (unsigned i = 0; i < OptimizationList.size(); ++i) {
-    const PassInfo *Opt = OptimizationList[i];
-    if (Opt->getNormalCtor())
-      addPass(Passes, Opt->getNormalCtor()());
-    else
-      llvm::errs() << "llvm-ld: cannot create pass: " << Opt->getPassName()
-                << "\n";
-  }
-#endif
-
-  // The user's passes may leave cruft around. Clean up after them them but
-  // only if we haven't got DisableOptimizations set
-  if (!DisableOptimizations) {
-    addPass(Passes, createInstructionCombiningPass());
-    addPass(Passes, createCFGSimplificationPass());
-    addPass(Passes, createAggressiveDCEPass());
-    addPass(Passes, createGlobalDCEPass());
-  }
+  // The user's passes may leave cruft around; clean up after them.
+  addPass(Passes, createInstructionCombiningPass());
+  addPass(Passes, createCFGSimplificationPass());
+  addPass(Passes, createAggressiveDCEPass());
+  addPass(Passes, createGlobalDCEPass());
 
   // Make sure everything is still good.
   if (!DontVerify)
@@ -334,5 +310,4 @@ void Optimize(Module *M, llvm::ArrayRef<const char *> preservedFunctions) {
   // Run our queue of passes all at once now, efficiently.
   Passes.run(*M);
 }
-
 }
diff --git a/test/Feature/BitcastAlias.leq36.ll b/test/Feature/BitcastAlias.leq36.ll
index d203e52c..467b6d17 100644
--- a/test/Feature/BitcastAlias.leq36.ll
+++ b/test/Feature/BitcastAlias.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/BitcastAlias.leq37.ll b/test/Feature/BitcastAlias.leq37.ll
index e860acb2..eddadcf9 100644
--- a/test/Feature/BitcastAlias.leq37.ll
+++ b/test/Feature/BitcastAlias.leq37.ll
@@ -4,7 +4,7 @@
 ; REQUIRES: lt-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/BitcastAlias.ll b/test/Feature/BitcastAlias.ll
index 5111f18e..50ee4fb7 100644
--- a/test/Feature/BitcastAlias.ll
+++ b/test/Feature/BitcastAlias.ll
@@ -4,7 +4,7 @@
 ; REQUIRES: geq-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/BitcastAliasMD2U.leq36.ll b/test/Feature/BitcastAliasMD2U.leq36.ll
index cef8ac54..e33f6948 100644
--- a/test/Feature/BitcastAliasMD2U.leq36.ll
+++ b/test/Feature/BitcastAliasMD2U.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt -search=nurs:md2u %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/BitcastAliasMD2U.leq37.ll b/test/Feature/BitcastAliasMD2U.leq37.ll
index c29ec8a6..9f144774 100644
--- a/test/Feature/BitcastAliasMD2U.leq37.ll
+++ b/test/Feature/BitcastAliasMD2U.leq37.ll
@@ -4,7 +4,7 @@
 ; REQUIRES: lt-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt -search=nurs:md2u %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/BitcastAliasMD2U.ll b/test/Feature/BitcastAliasMD2U.ll
index 7ef74a8d..eef4cc7a 100644
--- a/test/Feature/BitcastAliasMD2U.ll
+++ b/test/Feature/BitcastAliasMD2U.ll
@@ -4,7 +4,7 @@
 ; REQUIRES: geq-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt -search=nurs:md2u %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/ConstantArray.leq36.ll b/test/Feature/ConstantArray.leq36.ll
index a4986ff4..e1664e05 100644
--- a/test/Feature/ConstantArray.leq36.ll
+++ b/test/Feature/ConstantArray.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc 2>&1 | FileCheck %s
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc 2>&1 | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
diff --git a/test/Feature/ConstantArray.ll b/test/Feature/ConstantArray.ll
index 195b4cb0..e0f811cc 100644
--- a/test/Feature/ConstantArray.ll
+++ b/test/Feature/ConstantArray.ll
@@ -4,7 +4,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc 2>&1 | FileCheck %s
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc 2>&1 | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
diff --git a/test/Feature/ConstantStruct.leq36.ll b/test/Feature/ConstantStruct.leq36.ll
index 073544d3..103d07b6 100644
--- a/test/Feature/ConstantStruct.leq36.ll
+++ b/test/Feature/ConstantStruct.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/ConstantStruct.ll b/test/Feature/ConstantStruct.ll
index e4b3d07b..331dcfc9 100644
--- a/test/Feature/ConstantStruct.ll
+++ b/test/Feature/ConstantStruct.ll
@@ -2,7 +2,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/GetElementPtr.leq36.ll b/test/Feature/GetElementPtr.leq36.ll
index 43f33e27..349ecd1b 100644
--- a/test/Feature/GetElementPtr.leq36.ll
+++ b/test/Feature/GetElementPtr.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/GetElementPtr.ll b/test/Feature/GetElementPtr.ll
index f7f8aada..a0bfad0f 100644
--- a/test/Feature/GetElementPtr.ll
+++ b/test/Feature/GetElementPtr.ll
@@ -2,7 +2,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/ImpliedValue.c.failing b/test/Feature/ImpliedValue.c.failing
index d3142456..dd4d8f55 100644
--- a/test/Feature/ImpliedValue.c.failing
+++ b/test/Feature/ImpliedValue.c.failing
@@ -1,7 +1,7 @@
 // RUN: rm -f %t4.out %t4.err %t4.log
 // RUN: %llvmgcc %s -emit-llvm -O2 -c -o %t1.bc
 // RUN: llvm-as -f ../_utils._ll -o %t2.bc
-// RUN: llvm-ld -disable-opt -link-as-library %t1.bc %t2.bc -o %t3.bc
+// RUN: llvm-ld --optimize=false -link-as-library %t1.bc %t2.bc -o %t3.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --log-file %t4.log --debug-check-for-implied-values %t3.bc > %t4.out 2> %t4.err
 // RUN: ls %t.klee-out | not grep .err
diff --git a/test/Feature/InsertExtractValue.leq36.ll b/test/Feature/InsertExtractValue.leq36.ll
index 431e14c4..4918cc2b 100644
--- a/test/Feature/InsertExtractValue.leq36.ll
+++ b/test/Feature/InsertExtractValue.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/InsertExtractValue.ll b/test/Feature/InsertExtractValue.ll
index fff6da7c..461b28de 100644
--- a/test/Feature/InsertExtractValue.ll
+++ b/test/Feature/InsertExtractValue.ll
@@ -2,7 +2,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/IntrinsicTrap.ll b/test/Feature/IntrinsicTrap.ll
index 9caf4a62..c88a328a 100644
--- a/test/Feature/IntrinsicTrap.ll
+++ b/test/Feature/IntrinsicTrap.ll
@@ -1,6 +1,6 @@
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc
 ; RUN: FileCheck %s --input-file=%t.klee-out/assembly.ll
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-f128:128:128-n8:16:32:64"
diff --git a/test/Feature/Overflow.leq36.ll b/test/Feature/Overflow.leq36.ll
index 2ab04772..f61c2576 100644
--- a/test/Feature/Overflow.leq36.ll
+++ b/test/Feature/Overflow.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/Overflow.ll b/test/Feature/Overflow.ll
index 1dbe1216..06926a28 100644
--- a/test/Feature/Overflow.ll
+++ b/test/Feature/Overflow.ll
@@ -2,7 +2,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/OverflowMul.leq36.ll b/test/Feature/OverflowMul.leq36.ll
index 1b14d380..f1878a47 100644
--- a/test/Feature/OverflowMul.leq36.ll
+++ b/test/Feature/OverflowMul.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Feature/OverflowMul.ll b/test/Feature/OverflowMul.ll
index 3173e43c..89335b91 100644
--- a/test/Feature/OverflowMul.ll
+++ b/test/Feature/OverflowMul.ll
@@ -2,7 +2,7 @@
 ; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out -disable-opt %t1.bc > %t2
+; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
 ; RUN: grep PASS %t2
 
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
diff --git a/test/Intrinsics/objectsize.leq36.ll b/test/Intrinsics/objectsize.leq36.ll
index 7ad4b6fc..8f94510c 100644
--- a/test/Intrinsics/objectsize.leq36.ll
+++ b/test/Intrinsics/objectsize.leq36.ll
@@ -1,7 +1,7 @@
 ; REQUIRES: lt-llvm-3.7
 ; RUN: %llvmas %s -o=%t.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee -exit-on-error --output-dir=%t.klee-out -disable-opt %t.bc
+; RUN: %klee -exit-on-error --output-dir=%t.klee-out --optimize=false %t.bc
 ; ModuleID = 'objectsize.c'
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
diff --git a/test/Intrinsics/objectsize.leq49.ll b/test/Intrinsics/objectsize.leq49.ll
index 1d184bdf..d21b13b4 100644
--- a/test/Intrinsics/objectsize.leq49.ll
+++ b/test/Intrinsics/objectsize.leq49.ll
@@ -6,7 +6,7 @@
 ; REQUIRES: lt-llvm-5.0
 ; RUN: %llvmas %s -o=%t.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee -exit-on-error --output-dir=%t.klee-out -disable-opt %t.bc
+; RUN: %klee -exit-on-error --output-dir=%t.klee-out --optimize=false %t.bc
 ; ModuleID = 'objectsize.c'
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
diff --git a/test/Intrinsics/objectsize.ll b/test/Intrinsics/objectsize.ll
index 95070e66..733f03b0 100644
--- a/test/Intrinsics/objectsize.ll
+++ b/test/Intrinsics/objectsize.ll
@@ -6,7 +6,7 @@
 ; REQUIRES: geq-llvm-5.0
 ; RUN: %llvmas %s -o=%t.bc
 ; RUN: rm -rf %t.klee-out
-; RUN: %klee -exit-on-error --output-dir=%t.klee-out -disable-opt %t.bc
+; RUN: %klee -exit-on-error --output-dir=%t.klee-out --optimize=false %t.bc
 ; ModuleID = 'objectsize.c'
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"