Add a -disable-loop-extraction option to bugpoint.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31683 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp
index 850fb83..116e3a5 100644
--- a/tools/bugpoint/Miscompilation.cpp
+++ b/tools/bugpoint/Miscompilation.cpp
@@ -33,6 +33,11 @@
 }
 
 namespace {
+  static llvm::cl::opt<bool> 
+    DisableLoopExtraction("disable-loop-extraction", 
+        cl::desc("Don't extract loops when searching for miscompilations"),
+        cl::init(false));
+
   class ReduceMiscompilingPasses : public ListReducer<const PassInfo*> {
     BugDriver &BD;
   public:
@@ -512,8 +517,10 @@
 
   // See if we can rip any loops out of the miscompiled functions and still
   // trigger the problem.
-  if (!BugpointIsInterrupted && 
-      ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
+
+  if (!DisableLoopExtraction)
+    if (!BugpointIsInterrupted && 
+        ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
     // Okay, we extracted some loops and the problem still appears.  See if we
     // can eliminate some of the created functions from being candidates.