Disable statistics on Release builds and move tests that depend on -stats.

Summary:
Statistics are still available in Release+Asserts (any +Asserts builds),
and stats can also be turned on with LLVM_ENABLE_STATS.

Move some of the FastISel stats that were moved under DEBUG()
back out of DEBUG(), since stats are disabled across the board now.

Many tests depend on grepping "-stats" output.  Move those into
a orig_dir/Stats/. so that they can be marked as unsupported
when building without statistics.

Differential Revision: http://llvm-reviews.chandlerc.com/D486

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/FastISel.cpp b/lib/CodeGen/SelectionDAG/FastISel.cpp
index 4fb9c5c..aa45ac5 100644
--- a/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -63,13 +63,11 @@
 #include "llvm/Target/TargetMachine.h"
 using namespace llvm;
 
-#ifndef NDEBUG
 STATISTIC(NumFastIselSuccessIndependent, "Number of insts selected by "
           "target-independent selector");
 STATISTIC(NumFastIselSuccessTarget, "Number of insts selected by "
           "target-specific selector");
 STATISTIC(NumFastIselDead, "Number of dead insts removed on failure");
-#endif // NDEBUG
 
 /// startNewBlock - Set the current block to which generated machine
 /// instructions will be appended, and clear the local CSE map.
@@ -334,7 +332,7 @@
     MachineInstr *Dead = &*I;
     ++I;
     Dead->eraseFromParent();
-    DEBUG(++NumFastIselDead);
+    ++NumFastIselDead;
   }
   recomputeInsertPt();
 }
@@ -830,7 +828,7 @@
 
   // First, try doing target-independent selection.
   if (SelectOperator(I, I->getOpcode())) {
-    DEBUG(++NumFastIselSuccessIndependent);
+    ++NumFastIselSuccessIndependent;
     DL = DebugLoc();
     return true;
   }
@@ -845,7 +843,7 @@
   // Next, try calling the target to attempt to handle the instruction.
   SavedInsertPt = FuncInfo.InsertPt;
   if (TargetSelectInstruction(I)) {
-    DEBUG(++NumFastIselSuccessTarget);
+    ++NumFastIselSuccessTarget;
     DL = DebugLoc();
     return true;
   }
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 285625e..39a1f8a 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -58,14 +58,13 @@
 #include <algorithm>
 using namespace llvm;
 
-STATISTIC(NumFastIselBlocks, "Number of blocks selected entirely by fast isel");
-STATISTIC(NumDAGBlocks, "Number of blocks selected using DAG");
-
-#ifndef NDEBUG
-STATISTIC(NumDAGIselRetries,"Number of times dag isel has to try another path");
 STATISTIC(NumFastIselFailures, "Number of instructions fast isel failed on");
 STATISTIC(NumFastIselSuccess, "Number of instructions fast isel selected");
+STATISTIC(NumFastIselBlocks, "Number of blocks selected entirely by fast isel");
+STATISTIC(NumDAGBlocks, "Number of blocks selected using DAG");
+STATISTIC(NumDAGIselRetries,"Number of times dag isel has to try another path");
 
+#ifndef NDEBUG
 static cl::opt<bool>
 EnableFastISelVerbose2("fast-isel-verbose2", cl::Hidden,
           cl::desc("Enable extra verbose messages in the \"fast\" "
@@ -1090,7 +1089,7 @@
         // Try to select the instruction with FastISel.
         if (FastIS->SelectInstruction(Inst)) {
           --NumFastIselRemaining;
-          DEBUG(++NumFastIselSuccess);
+          ++NumFastIselSuccess;
           // If fast isel succeeded, skip over all the folded instructions, and
           // then see if there is a load right before the selected instructions.
           // Try to fold the load if so.
@@ -1106,7 +1105,7 @@
             // If we succeeded, don't re-select the load.
             BI = llvm::next(BasicBlock::const_iterator(BeforeInst));
             --NumFastIselRemaining;
-            DEBUG(++NumFastIselSuccess);
+            ++NumFastIselSuccess;
           }
           continue;
         }
@@ -1145,21 +1144,20 @@
           // Recompute NumFastIselRemaining as Selection DAG instruction
           // selection may have handled the call, input args, etc.
           unsigned RemainingNow = std::distance(Begin, BI);
-          (void) RemainingNow;
-          DEBUG(NumFastIselFailures += NumFastIselRemaining - RemainingNow);
-          DEBUG(NumFastIselRemaining = RemainingNow);
+          NumFastIselFailures += NumFastIselRemaining - RemainingNow;
+          NumFastIselRemaining = RemainingNow;
           continue;
         }
 
         if (isa<TerminatorInst>(Inst) && !isa<BranchInst>(Inst)) {
           // Don't abort, and use a different message for terminator misses.
-          DEBUG(NumFastIselFailures += NumFastIselRemaining);
+          NumFastIselFailures += NumFastIselRemaining;
           if (EnableFastISelVerbose || EnableFastISelAbort) {
             dbgs() << "FastISel missed terminator: ";
             Inst->dump();
           }
         } else {
-          DEBUG(NumFastIselFailures += NumFastIselRemaining);
+          NumFastIselFailures += NumFastIselRemaining;
           if (EnableFastISelVerbose || EnableFastISelAbort) {
             dbgs() << "FastISel miss: ";
             Inst->dump();
@@ -2357,7 +2355,7 @@
         DEBUG(errs() << "  Skipped scope entry (due to false predicate) at "
                      << "index " << MatcherIndexOfPredicate
                      << ", continuing at " << FailIndex << "\n");
-        DEBUG(++NumDAGIselRetries);
+        ++NumDAGIselRetries;
 
         // Otherwise, we know that this case of the Scope is guaranteed to fail,
         // move to the next case.
@@ -2938,7 +2936,7 @@
     // another child to try in the current 'Scope', otherwise pop it until we
     // find a case to check.
     DEBUG(errs() << "  Match failed at index " << CurrentOpcodeIndex << "\n");
-    DEBUG(++NumDAGIselRetries);
+    ++NumDAGIselRetries;
     while (1) {
       if (MatchScopes.empty()) {
         CannotYetSelect(NodeToMatch);