aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ADT/Statistic.h44
-rw-r--r--lib/CodeGen/SelectionDAG/FastISel.cpp8
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp24
-rw-r--r--lib/Support/Statistic.cpp18
-rw-r--r--test/Analysis/RegionInfo/Stats/block_sort.ll (renamed from test/Analysis/RegionInfo/block_sort.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/cond_loop.ll (renamed from test/Analysis/RegionInfo/cond_loop.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/condition_complicated.ll (renamed from test/Analysis/RegionInfo/condition_complicated.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/condition_complicated_2.ll (renamed from test/Analysis/RegionInfo/condition_complicated_2.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/condition_forward_edge.ll (renamed from test/Analysis/RegionInfo/condition_forward_edge.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/condition_same_exit.ll (renamed from test/Analysis/RegionInfo/condition_same_exit.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/condition_simple.ll (renamed from test/Analysis/RegionInfo/condition_simple.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/exit_in_condition.ll (renamed from test/Analysis/RegionInfo/exit_in_condition.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/infinite_loop.ll (renamed from test/Analysis/RegionInfo/infinite_loop.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/infinite_loop_2.ll (renamed from test/Analysis/RegionInfo/infinite_loop_2.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/infinite_loop_3.ll (renamed from test/Analysis/RegionInfo/infinite_loop_3.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/infinite_loop_4.ll (renamed from test/Analysis/RegionInfo/infinite_loop_4.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/lit.local.cfg4
-rw-r--r--test/Analysis/RegionInfo/Stats/loop_with_condition.ll (renamed from test/Analysis/RegionInfo/loop_with_condition.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/loops_1.ll (renamed from test/Analysis/RegionInfo/loops_1.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/loops_2.ll (renamed from test/Analysis/RegionInfo/loops_2.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/mix_1.ll (renamed from test/Analysis/RegionInfo/mix_1.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/nested_loops.ll (renamed from test/Analysis/RegionInfo/nested_loops.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/next.ll (renamed from test/Analysis/RegionInfo/next.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/paper.ll (renamed from test/Analysis/RegionInfo/paper.ll)0
-rw-r--r--test/Analysis/RegionInfo/Stats/two_loops_same_header.ll (renamed from test/Analysis/RegionInfo/two_loops_same_header.ll)0
-rw-r--r--test/CodeGen/ARM/Stats/2007-03-13-InstrSched.ll (renamed from test/CodeGen/ARM/2007-03-13-InstrSched.ll)0
-rw-r--r--test/CodeGen/ARM/Stats/2011-12-14-machine-sink.ll (renamed from test/CodeGen/ARM/2011-12-14-machine-sink.ll)0
-rw-r--r--test/CodeGen/ARM/Stats/addrmode.ll (renamed from test/CodeGen/ARM/addrmode.ll)0
-rw-r--r--test/CodeGen/ARM/Stats/lit.local.cfg8
-rw-r--r--test/CodeGen/PowerPC/Stats/iabs.ll (renamed from test/CodeGen/PowerPC/iabs.ll)0
-rw-r--r--test/CodeGen/PowerPC/Stats/lit.local.cfg8
-rw-r--r--test/CodeGen/PowerPC/Stats/rlwimi3.ll (renamed from test/CodeGen/PowerPC/rlwimi3.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2003-08-03-CallArgLiveRanges.ll (renamed from test/CodeGen/X86/2003-08-03-CallArgLiveRanges.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2006-03-02-InstrSchedBug.ll (renamed from test/CodeGen/X86/2006-03-02-InstrSchedBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2006-05-01-SchedCausingSpills.ll (renamed from test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2006-05-02-InstrSched1.ll (renamed from test/CodeGen/X86/2006-05-02-InstrSched1.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2006-05-02-InstrSched2.ll (renamed from test/CodeGen/X86/2006-05-02-InstrSched2.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2006-05-11-InstrSched.ll (renamed from test/CodeGen/X86/2006-05-11-InstrSched.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2008-02-18-TailMergingBug.ll (renamed from test/CodeGen/X86/2008-02-18-TailMergingBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2008-10-27-CoalescerBug.ll (renamed from test/CodeGen/X86/2008-10-27-CoalescerBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2009-02-25-CommuteBug.ll (renamed from test/CodeGen/X86/2009-02-25-CommuteBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2009-02-26-MachineLICMBug.ll (renamed from test/CodeGen/X86/2009-02-26-MachineLICMBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2009-03-23-MultiUseSched.ll (renamed from test/CodeGen/X86/2009-03-23-MultiUseSched.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2009-04-16-SpillerUnfold.ll (renamed from test/CodeGen/X86/2009-04-16-SpillerUnfold.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2010-01-19-OptExtBug.ll (renamed from test/CodeGen/X86/2010-01-19-OptExtBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2011-06-12-FastAllocSpill.ll (renamed from test/CodeGen/X86/2011-06-12-FastAllocSpill.ll)0
-rw-r--r--test/CodeGen/X86/Stats/2012-03-26-PostRALICMBug.ll (renamed from test/CodeGen/X86/2012-03-26-PostRALICMBug.ll)0
-rw-r--r--test/CodeGen/X86/Stats/MachineSink-PHIUse.ll (renamed from test/CodeGen/X86/MachineSink-PHIUse.ll)0
-rw-r--r--test/CodeGen/X86/Stats/constant-pool-remat-0.ll (renamed from test/CodeGen/X86/constant-pool-remat-0.ll)0
-rw-r--r--test/CodeGen/X86/Stats/convert-2-addr-3-addr-inc64.ll (renamed from test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll)0
-rw-r--r--test/CodeGen/X86/Stats/dagcombine-cse.ll (renamed from test/CodeGen/X86/dagcombine-cse.ll)0
-rw-r--r--test/CodeGen/X86/Stats/hoist-invariant-load.ll (renamed from test/CodeGen/X86/hoist-invariant-load.ll)0
-rw-r--r--test/CodeGen/X86/Stats/licm-nested.ll (renamed from test/CodeGen/X86/licm-nested.ll)0
-rw-r--r--test/CodeGen/X86/Stats/lit.local.cfg8
-rw-r--r--test/CodeGen/X86/Stats/phi-immediate-factoring.ll (renamed from test/CodeGen/X86/phi-immediate-factoring.ll)0
-rw-r--r--test/CodeGen/X86/Stats/pr3522.ll (renamed from test/CodeGen/X86/pr3522.ll)0
-rw-r--r--test/CodeGen/X86/Stats/regpressure.ll (renamed from test/CodeGen/X86/regpressure.ll)0
-rw-r--r--test/CodeGen/X86/Stats/twoaddr-coalesce-2.ll (renamed from test/CodeGen/X86/twoaddr-coalesce-2.ll)0
-rw-r--r--test/CodeGen/X86/Stats/twoaddr-pass-sink.ll (renamed from test/CodeGen/X86/twoaddr-pass-sink.ll)0
-rw-r--r--test/CodeGen/X86/Stats/vec_insert-6.ll (renamed from test/CodeGen/X86/vec_insert-6.ll)0
-rw-r--r--test/CodeGen/X86/Stats/vec_shuffle-19.ll (renamed from test/CodeGen/X86/vec_shuffle-19.ll)0
-rw-r--r--test/CodeGen/X86/Stats/vec_shuffle-20.ll (renamed from test/CodeGen/X86/vec_shuffle-20.ll)0
-rw-r--r--test/CodeGen/X86/Stats/zero-remat.ll (renamed from test/CodeGen/X86/zero-remat.ll)0
-rw-r--r--test/Transforms/GVN/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/GVN/Stats/nonescaping-malloc.ll (renamed from test/Transforms/GVN/nonescaping-malloc.ll)0
-rw-r--r--test/Transforms/GlobalOpt/Stats/2009-03-05-dbg.ll (renamed from test/Transforms/GlobalOpt/2009-03-05-dbg.ll)0
-rw-r--r--test/Transforms/GlobalOpt/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/IndVarSimplify/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/IndVarSimplify/Stats/phi-uses-value-multiple-times.ll (renamed from test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll)0
-rw-r--r--test/Transforms/Inline/Stats/delete-call.ll (renamed from test/Transforms/Inline/delete-call.ll)0
-rw-r--r--test/Transforms/Inline/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/LICM/Stats/hoist-invariant-load.ll (renamed from test/Transforms/LICM/hoist-invariant-load.ll)0
-rw-r--r--test/Transforms/LICM/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/LoopUnroll/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/LoopUnroll/Stats/runtime-loop3.ll (renamed from test/Transforms/LoopUnroll/runtime-loop3.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/2008-11-03-Invariant.ll (renamed from test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/2011-11-18-SimpleSwitch.ll (renamed from test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches-Threshold.ll (renamed from test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches-Threshold.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches.ll (renamed from test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/infinite-loop.ll (renamed from test/Transforms/LoopUnswitch/infinite-loop.ll)0
-rw-r--r--test/Transforms/LoopUnswitch/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/MergeFunc/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/MergeFunc/Stats/phi-speculation1.ll (renamed from test/Transforms/MergeFunc/phi-speculation1.ll)0
-rw-r--r--test/Transforms/MergeFunc/Stats/phi-speculation2.ll (renamed from test/Transforms/MergeFunc/phi-speculation2.ll)0
-rw-r--r--test/Transforms/MergeFunc/Stats/vector.ll (renamed from test/Transforms/MergeFunc/vector.ll)0
-rw-r--r--test/Transforms/MergeFunc/Stats/vectors-and-arrays.ll (renamed from test/Transforms/MergeFunc/vectors-and-arrays.ll)0
-rw-r--r--test/Transforms/TailCallElim/Stats/ackermann.ll (renamed from test/Transforms/TailCallElim/ackermann.ll)0
-rw-r--r--test/Transforms/TailCallElim/Stats/dup_tail.ll (renamed from test/Transforms/TailCallElim/dup_tail.ll)0
-rw-r--r--test/Transforms/TailCallElim/Stats/lit.local.cfg4
-rw-r--r--test/Transforms/TailDup/Stats/2008-06-11-AvoidDupLoopHeader.ll (renamed from test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll)0
-rw-r--r--test/Transforms/TailDup/Stats/lit.local.cfg4
91 files changed, 142 insertions, 20 deletions
diff --git a/include/llvm/ADT/Statistic.h b/include/llvm/ADT/Statistic.h
index b54d10b9dd..26aac7bea6 100644
--- a/include/llvm/ADT/Statistic.h
+++ b/include/llvm/ADT/Statistic.h
@@ -51,7 +51,9 @@ public:
// Allow use of this class as the value itself.
operator unsigned() const { return Value; }
- const Statistic &operator=(unsigned Val) {
+
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
+ const Statistic &operator=(unsigned Val) {
Value = Val;
return init();
}
@@ -106,6 +108,46 @@ public:
return init();
}
+#else // Statistics are disabled in release builds.
+
+ const Statistic &operator=(unsigned Val) {
+ return *this;
+ }
+
+ const Statistic &operator++() {
+ return *this;
+ }
+
+ unsigned operator++(int) {
+ return 0;
+ }
+
+ const Statistic &operator--() {
+ return *this;
+ }
+
+ unsigned operator--(int) {
+ return 0;
+ }
+
+ const Statistic &operator+=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator-=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator*=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator/=(const unsigned &V) {
+ return *this;
+ }
+
+#endif // !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
+
protected:
Statistic &init() {
bool tmp = Initialized;
diff --git a/lib/CodeGen/SelectionDAG/FastISel.cpp b/lib/CodeGen/SelectionDAG/FastISel.cpp
index 4fb9c5c8a0..aa45ac5958 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 @@ void FastISel::removeDeadCode(MachineBasicBlock::iterator I,
MachineInstr *Dead = &*I;
++I;
Dead->eraseFromParent();
- DEBUG(++NumFastIselDead);
+ ++NumFastIselDead;
}
recomputeInsertPt();
}
@@ -830,7 +828,7 @@ FastISel::SelectInstruction(const Instruction *I) {
// First, try doing target-independent selection.
if (SelectOperator(I, I->getOpcode())) {
- DEBUG(++NumFastIselSuccessIndependent);
+ ++NumFastIselSuccessIndependent;
DL = DebugLoc();
return true;
}
@@ -845,7 +843,7 @@ FastISel::SelectInstruction(const Instruction *I) {
// 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 285625ef04..39a1f8a3d0 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -58,14 +58,13 @@
#include <algorithm>
using namespace llvm;
+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");
-
-#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");
+#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 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
// 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 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
// 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 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
// 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 @@ SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
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 @@ SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
// 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);
diff --git a/lib/Support/Statistic.cpp b/lib/Support/Statistic.cpp
index 3a6522101d..9c28176b73 100644
--- a/lib/Support/Statistic.cpp
+++ b/lib/Support/Statistic.cpp
@@ -40,7 +40,9 @@ namespace llvm { extern raw_ostream *CreateInfoOutputFile(); }
/// what they did.
///
static cl::opt<bool>
-Enabled("stats", cl::desc("Enable statistics output from program"));
+Enabled(
+ "stats",
+ cl::desc("Enable statistics output from program (available with Asserts)"));
namespace {
@@ -142,6 +144,7 @@ void llvm::PrintStatistics(raw_ostream &OS) {
}
void llvm::PrintStatistics() {
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
StatisticInfo &Stats = *StatInfo;
// Statistics not enabled?
@@ -151,4 +154,17 @@ void llvm::PrintStatistics() {
raw_ostream &OutStream = *CreateInfoOutputFile();
PrintStatistics(OutStream);
delete &OutStream; // Close the file.
+#else
+ // Check if the -stats option is set instead of checking
+ // !Stats.Stats.empty(). In release builds, Statistics operators
+ // do nothing, so stats are never Registered.
+ if (Enabled) {
+ // Get the stream to write to.
+ raw_ostream &OutStream = *CreateInfoOutputFile();
+ OutStream << "Statistics are disabled. "
+ << "Build with asserts or with -DLLVM_ENABLE_STATS\n";
+ OutStream.flush();
+ delete &OutStream; // Close the file.
+ }
+#endif
}
diff --git a/test/Analysis/RegionInfo/block_sort.ll b/test/Analysis/RegionInfo/Stats/block_sort.ll
index ac77ab36e6..ac77ab36e6 100644
--- a/test/Analysis/RegionInfo/block_sort.ll
+++ b/test/Analysis/RegionInfo/Stats/block_sort.ll
diff --git a/test/Analysis/RegionInfo/cond_loop.ll b/test/Analysis/RegionInfo/Stats/cond_loop.ll
index 1145ffdba0..1145ffdba0 100644
--- a/test/Analysis/RegionInfo/cond_loop.ll
+++ b/test/Analysis/RegionInfo/Stats/cond_loop.ll
diff --git a/test/Analysis/RegionInfo/condition_complicated.ll b/test/Analysis/RegionInfo/Stats/condition_complicated.ll
index 6b398800db..6b398800db 100644
--- a/test/Analysis/RegionInfo/condition_complicated.ll
+++ b/test/Analysis/RegionInfo/Stats/condition_complicated.ll
diff --git a/test/Analysis/RegionInfo/condition_complicated_2.ll b/test/Analysis/RegionInfo/Stats/condition_complicated_2.ll
index f551108d60..f551108d60 100644
--- a/test/Analysis/RegionInfo/condition_complicated_2.ll
+++ b/test/Analysis/RegionInfo/Stats/condition_complicated_2.ll
diff --git a/test/Analysis/RegionInfo/condition_forward_edge.ll b/test/Analysis/RegionInfo/Stats/condition_forward_edge.ll
index 5e4d9d2f8b..5e4d9d2f8b 100644
--- a/test/Analysis/RegionInfo/condition_forward_edge.ll
+++ b/test/Analysis/RegionInfo/Stats/condition_forward_edge.ll
diff --git a/test/Analysis/RegionInfo/condition_same_exit.ll b/test/Analysis/RegionInfo/Stats/condition_same_exit.ll
index e48413a4c2..e48413a4c2 100644
--- a/test/Analysis/RegionInfo/condition_same_exit.ll
+++ b/test/Analysis/RegionInfo/Stats/condition_same_exit.ll
diff --git a/test/Analysis/RegionInfo/condition_simple.ll b/test/Analysis/RegionInfo/Stats/condition_simple.ll
index 00d9ed24e1..00d9ed24e1 100644
--- a/test/Analysis/RegionInfo/condition_simple.ll
+++ b/test/Analysis/RegionInfo/Stats/condition_simple.ll
diff --git a/test/Analysis/RegionInfo/exit_in_condition.ll b/test/Analysis/RegionInfo/Stats/exit_in_condition.ll
index b84abecc16..b84abecc16 100644
--- a/test/Analysis/RegionInfo/exit_in_condition.ll
+++ b/test/Analysis/RegionInfo/Stats/exit_in_condition.ll
diff --git a/test/Analysis/RegionInfo/infinite_loop.ll b/test/Analysis/RegionInfo/Stats/infinite_loop.ll
index 8e588286a5..8e588286a5 100644
--- a/test/Analysis/RegionInfo/infinite_loop.ll
+++ b/test/Analysis/RegionInfo/Stats/infinite_loop.ll
diff --git a/test/Analysis/RegionInfo/infinite_loop_2.ll b/test/Analysis/RegionInfo/Stats/infinite_loop_2.ll
index a8227e340c..a8227e340c 100644
--- a/test/Analysis/RegionInfo/infinite_loop_2.ll
+++ b/test/Analysis/RegionInfo/Stats/infinite_loop_2.ll
diff --git a/test/Analysis/RegionInfo/infinite_loop_3.ll b/test/Analysis/RegionInfo/Stats/infinite_loop_3.ll
index b09c9c1e59..b09c9c1e59 100644
--- a/test/Analysis/RegionInfo/infinite_loop_3.ll
+++ b/test/Analysis/RegionInfo/Stats/infinite_loop_3.ll
diff --git a/test/Analysis/RegionInfo/infinite_loop_4.ll b/test/Analysis/RegionInfo/Stats/infinite_loop_4.ll
index 681c305ce9..681c305ce9 100644
--- a/test/Analysis/RegionInfo/infinite_loop_4.ll
+++ b/test/Analysis/RegionInfo/Stats/infinite_loop_4.ll
diff --git a/test/Analysis/RegionInfo/Stats/lit.local.cfg b/test/Analysis/RegionInfo/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Analysis/RegionInfo/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Analysis/RegionInfo/loop_with_condition.ll b/test/Analysis/RegionInfo/Stats/loop_with_condition.ll
index 08d2ba8e35..08d2ba8e35 100644
--- a/test/Analysis/RegionInfo/loop_with_condition.ll
+++ b/test/Analysis/RegionInfo/Stats/loop_with_condition.ll
diff --git a/test/Analysis/RegionInfo/loops_1.ll b/test/Analysis/RegionInfo/Stats/loops_1.ll
index 6449949df8..6449949df8 100644
--- a/test/Analysis/RegionInfo/loops_1.ll
+++ b/test/Analysis/RegionInfo/Stats/loops_1.ll
diff --git a/test/Analysis/RegionInfo/loops_2.ll b/test/Analysis/RegionInfo/Stats/loops_2.ll
index dc4a1adffb..dc4a1adffb 100644
--- a/test/Analysis/RegionInfo/loops_2.ll
+++ b/test/Analysis/RegionInfo/Stats/loops_2.ll
diff --git a/test/Analysis/RegionInfo/mix_1.ll b/test/Analysis/RegionInfo/Stats/mix_1.ll
index 1474e033e5..1474e033e5 100644
--- a/test/Analysis/RegionInfo/mix_1.ll
+++ b/test/Analysis/RegionInfo/Stats/mix_1.ll
diff --git a/test/Analysis/RegionInfo/nested_loops.ll b/test/Analysis/RegionInfo/Stats/nested_loops.ll
index a3707a1987..a3707a1987 100644
--- a/test/Analysis/RegionInfo/nested_loops.ll
+++ b/test/Analysis/RegionInfo/Stats/nested_loops.ll
diff --git a/test/Analysis/RegionInfo/next.ll b/test/Analysis/RegionInfo/Stats/next.ll
index 890b4f2300..890b4f2300 100644
--- a/test/Analysis/RegionInfo/next.ll
+++ b/test/Analysis/RegionInfo/Stats/next.ll
diff --git a/test/Analysis/RegionInfo/paper.ll b/test/Analysis/RegionInfo/Stats/paper.ll
index 96c87e0559..96c87e0559 100644
--- a/test/Analysis/RegionInfo/paper.ll
+++ b/test/Analysis/RegionInfo/Stats/paper.ll
diff --git a/test/Analysis/RegionInfo/two_loops_same_header.ll b/test/Analysis/RegionInfo/Stats/two_loops_same_header.ll
index e75661e890..e75661e890 100644
--- a/test/Analysis/RegionInfo/two_loops_same_header.ll
+++ b/test/Analysis/RegionInfo/Stats/two_loops_same_header.ll
diff --git a/test/CodeGen/ARM/2007-03-13-InstrSched.ll b/test/CodeGen/ARM/Stats/2007-03-13-InstrSched.ll
index a63cdd46e2..a63cdd46e2 100644
--- a/test/CodeGen/ARM/2007-03-13-InstrSched.ll
+++ b/test/CodeGen/ARM/Stats/2007-03-13-InstrSched.ll
diff --git a/test/CodeGen/ARM/2011-12-14-machine-sink.ll b/test/CodeGen/ARM/Stats/2011-12-14-machine-sink.ll
index b21bb006e3..b21bb006e3 100644
--- a/test/CodeGen/ARM/2011-12-14-machine-sink.ll
+++ b/test/CodeGen/ARM/Stats/2011-12-14-machine-sink.ll
diff --git a/test/CodeGen/ARM/addrmode.ll b/test/CodeGen/ARM/Stats/addrmode.ll
index 6da90897b9..6da90897b9 100644
--- a/test/CodeGen/ARM/addrmode.ll
+++ b/test/CodeGen/ARM/Stats/addrmode.ll
diff --git a/test/CodeGen/ARM/Stats/lit.local.cfg b/test/CodeGen/ARM/Stats/lit.local.cfg
new file mode 100644
index 0000000000..f6194d2421
--- /dev/null
+++ b/test/CodeGen/ARM/Stats/lit.local.cfg
@@ -0,0 +1,8 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+targets = set(config.root.targets_to_build.split())
+if not 'ARM' in targets:
+ config.unsupported = True
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/CodeGen/PowerPC/iabs.ll b/test/CodeGen/PowerPC/Stats/iabs.ll
index 7d089bbd65..7d089bbd65 100644
--- a/test/CodeGen/PowerPC/iabs.ll
+++ b/test/CodeGen/PowerPC/Stats/iabs.ll
diff --git a/test/CodeGen/PowerPC/Stats/lit.local.cfg b/test/CodeGen/PowerPC/Stats/lit.local.cfg
new file mode 100644
index 0000000000..2608e139e9
--- /dev/null
+++ b/test/CodeGen/PowerPC/Stats/lit.local.cfg
@@ -0,0 +1,8 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+targets = set(config.root.targets_to_build.split())
+if not 'PowerPC' in targets:
+ config.unsupported = True
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/CodeGen/PowerPC/rlwimi3.ll b/test/CodeGen/PowerPC/Stats/rlwimi3.ll
index 7efdbe9634..7efdbe9634 100644
--- a/test/CodeGen/PowerPC/rlwimi3.ll
+++ b/test/CodeGen/PowerPC/Stats/rlwimi3.ll
diff --git a/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.ll b/test/CodeGen/X86/Stats/2003-08-03-CallArgLiveRanges.ll
index 0af2445d7f..0af2445d7f 100644
--- a/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.ll
+++ b/test/CodeGen/X86/Stats/2003-08-03-CallArgLiveRanges.ll
diff --git a/test/CodeGen/X86/2006-03-02-InstrSchedBug.ll b/test/CodeGen/X86/Stats/2006-03-02-InstrSchedBug.ll
index 1a3d74918d..1a3d74918d 100644
--- a/test/CodeGen/X86/2006-03-02-InstrSchedBug.ll
+++ b/test/CodeGen/X86/Stats/2006-03-02-InstrSchedBug.ll
diff --git a/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll b/test/CodeGen/X86/Stats/2006-05-01-SchedCausingSpills.ll
index 5cba3efeef..5cba3efeef 100644
--- a/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll
+++ b/test/CodeGen/X86/Stats/2006-05-01-SchedCausingSpills.ll
diff --git a/test/CodeGen/X86/2006-05-02-InstrSched1.ll b/test/CodeGen/X86/Stats/2006-05-02-InstrSched1.ll
index 1c75f93915..1c75f93915 100644
--- a/test/CodeGen/X86/2006-05-02-InstrSched1.ll
+++ b/test/CodeGen/X86/Stats/2006-05-02-InstrSched1.ll
diff --git a/test/CodeGen/X86/2006-05-02-InstrSched2.ll b/test/CodeGen/X86/Stats/2006-05-02-InstrSched2.ll
index 95eefa1e71..95eefa1e71 100644
--- a/test/CodeGen/X86/2006-05-02-InstrSched2.ll
+++ b/test/CodeGen/X86/Stats/2006-05-02-InstrSched2.ll
diff --git a/test/CodeGen/X86/2006-05-11-InstrSched.ll b/test/CodeGen/X86/Stats/2006-05-11-InstrSched.ll
index 37c510786a..37c510786a 100644
--- a/test/CodeGen/X86/2006-05-11-InstrSched.ll
+++ b/test/CodeGen/X86/Stats/2006-05-11-InstrSched.ll
diff --git a/test/CodeGen/X86/2008-02-18-TailMergingBug.ll b/test/CodeGen/X86/Stats/2008-02-18-TailMergingBug.ll
index a1b973d7cc..a1b973d7cc 100644
--- a/test/CodeGen/X86/2008-02-18-TailMergingBug.ll
+++ b/test/CodeGen/X86/Stats/2008-02-18-TailMergingBug.ll
diff --git a/test/CodeGen/X86/2008-10-27-CoalescerBug.ll b/test/CodeGen/X86/Stats/2008-10-27-CoalescerBug.ll
index b2cf34cd20..b2cf34cd20 100644
--- a/test/CodeGen/X86/2008-10-27-CoalescerBug.ll
+++ b/test/CodeGen/X86/Stats/2008-10-27-CoalescerBug.ll
diff --git a/test/CodeGen/X86/2009-02-25-CommuteBug.ll b/test/CodeGen/X86/Stats/2009-02-25-CommuteBug.ll
index 9cbf350940..9cbf350940 100644
--- a/test/CodeGen/X86/2009-02-25-CommuteBug.ll
+++ b/test/CodeGen/X86/Stats/2009-02-25-CommuteBug.ll
diff --git a/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll b/test/CodeGen/X86/Stats/2009-02-26-MachineLICMBug.ll
index d50fe6f73a..d50fe6f73a 100644
--- a/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
+++ b/test/CodeGen/X86/Stats/2009-02-26-MachineLICMBug.ll
diff --git a/test/CodeGen/X86/2009-03-23-MultiUseSched.ll b/test/CodeGen/X86/Stats/2009-03-23-MultiUseSched.ll
index d934ec9a88..d934ec9a88 100644
--- a/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
+++ b/test/CodeGen/X86/Stats/2009-03-23-MultiUseSched.ll
diff --git a/test/CodeGen/X86/2009-04-16-SpillerUnfold.ll b/test/CodeGen/X86/Stats/2009-04-16-SpillerUnfold.ll
index ad18a0c5b9..ad18a0c5b9 100644
--- a/test/CodeGen/X86/2009-04-16-SpillerUnfold.ll
+++ b/test/CodeGen/X86/Stats/2009-04-16-SpillerUnfold.ll
diff --git a/test/CodeGen/X86/2010-01-19-OptExtBug.ll b/test/CodeGen/X86/Stats/2010-01-19-OptExtBug.ll
index eb4a5c04a2..eb4a5c04a2 100644
--- a/test/CodeGen/X86/2010-01-19-OptExtBug.ll
+++ b/test/CodeGen/X86/Stats/2010-01-19-OptExtBug.ll
diff --git a/test/CodeGen/X86/2011-06-12-FastAllocSpill.ll b/test/CodeGen/X86/Stats/2011-06-12-FastAllocSpill.ll
index 47ef693cc2..47ef693cc2 100644
--- a/test/CodeGen/X86/2011-06-12-FastAllocSpill.ll
+++ b/test/CodeGen/X86/Stats/2011-06-12-FastAllocSpill.ll
diff --git a/test/CodeGen/X86/2012-03-26-PostRALICMBug.ll b/test/CodeGen/X86/Stats/2012-03-26-PostRALICMBug.ll
index 18a3313773..18a3313773 100644
--- a/test/CodeGen/X86/2012-03-26-PostRALICMBug.ll
+++ b/test/CodeGen/X86/Stats/2012-03-26-PostRALICMBug.ll
diff --git a/test/CodeGen/X86/MachineSink-PHIUse.ll b/test/CodeGen/X86/Stats/MachineSink-PHIUse.ll
index 33141680aa..33141680aa 100644
--- a/test/CodeGen/X86/MachineSink-PHIUse.ll
+++ b/test/CodeGen/X86/Stats/MachineSink-PHIUse.ll
diff --git a/test/CodeGen/X86/constant-pool-remat-0.ll b/test/CodeGen/X86/Stats/constant-pool-remat-0.ll
index 4be14d2128..4be14d2128 100644
--- a/test/CodeGen/X86/constant-pool-remat-0.ll
+++ b/test/CodeGen/X86/Stats/constant-pool-remat-0.ll
diff --git a/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll b/test/CodeGen/X86/Stats/convert-2-addr-3-addr-inc64.ll
index 064ee364d1..064ee364d1 100644
--- a/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll
+++ b/test/CodeGen/X86/Stats/convert-2-addr-3-addr-inc64.ll
diff --git a/test/CodeGen/X86/dagcombine-cse.ll b/test/CodeGen/X86/Stats/dagcombine-cse.ll
index af69531246..af69531246 100644
--- a/test/CodeGen/X86/dagcombine-cse.ll
+++ b/test/CodeGen/X86/Stats/dagcombine-cse.ll
diff --git a/test/CodeGen/X86/hoist-invariant-load.ll b/test/CodeGen/X86/Stats/hoist-invariant-load.ll
index 74ecd045b3..74ecd045b3 100644
--- a/test/CodeGen/X86/hoist-invariant-load.ll
+++ b/test/CodeGen/X86/Stats/hoist-invariant-load.ll
diff --git a/test/CodeGen/X86/licm-nested.ll b/test/CodeGen/X86/Stats/licm-nested.ll
index c3f991d7a9..c3f991d7a9 100644
--- a/test/CodeGen/X86/licm-nested.ll
+++ b/test/CodeGen/X86/Stats/licm-nested.ll
diff --git a/test/CodeGen/X86/Stats/lit.local.cfg b/test/CodeGen/X86/Stats/lit.local.cfg
new file mode 100644
index 0000000000..1a5fd5ec86
--- /dev/null
+++ b/test/CodeGen/X86/Stats/lit.local.cfg
@@ -0,0 +1,8 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+targets = set(config.root.targets_to_build.split())
+if not 'X86' in targets:
+ config.unsupported = True
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/CodeGen/X86/phi-immediate-factoring.ll b/test/CodeGen/X86/Stats/phi-immediate-factoring.ll
index 476bb10998..476bb10998 100644
--- a/test/CodeGen/X86/phi-immediate-factoring.ll
+++ b/test/CodeGen/X86/Stats/phi-immediate-factoring.ll
diff --git a/test/CodeGen/X86/pr3522.ll b/test/CodeGen/X86/Stats/pr3522.ll
index d8f37781fc..d8f37781fc 100644
--- a/test/CodeGen/X86/pr3522.ll
+++ b/test/CodeGen/X86/Stats/pr3522.ll
diff --git a/test/CodeGen/X86/regpressure.ll b/test/CodeGen/X86/Stats/regpressure.ll
index 52d7b56f18..52d7b56f18 100644
--- a/test/CodeGen/X86/regpressure.ll
+++ b/test/CodeGen/X86/Stats/regpressure.ll
diff --git a/test/CodeGen/X86/twoaddr-coalesce-2.ll b/test/CodeGen/X86/Stats/twoaddr-coalesce-2.ll
index af6d47af7a..af6d47af7a 100644
--- a/test/CodeGen/X86/twoaddr-coalesce-2.ll
+++ b/test/CodeGen/X86/Stats/twoaddr-coalesce-2.ll
diff --git a/test/CodeGen/X86/twoaddr-pass-sink.ll b/test/CodeGen/X86/Stats/twoaddr-pass-sink.ll
index 513c304e3b..513c304e3b 100644
--- a/test/CodeGen/X86/twoaddr-pass-sink.ll
+++ b/test/CodeGen/X86/Stats/twoaddr-pass-sink.ll
diff --git a/test/CodeGen/X86/vec_insert-6.ll b/test/CodeGen/X86/Stats/vec_insert-6.ll
index 2a4864a48a..2a4864a48a 100644
--- a/test/CodeGen/X86/vec_insert-6.ll
+++ b/test/CodeGen/X86/Stats/vec_insert-6.ll
diff --git a/test/CodeGen/X86/vec_shuffle-19.ll b/test/CodeGen/X86/Stats/vec_shuffle-19.ll
index b26f920e5e..b26f920e5e 100644
--- a/test/CodeGen/X86/vec_shuffle-19.ll
+++ b/test/CodeGen/X86/Stats/vec_shuffle-19.ll
diff --git a/test/CodeGen/X86/vec_shuffle-20.ll b/test/CodeGen/X86/Stats/vec_shuffle-20.ll
index b6b8ba6f84..b6b8ba6f84 100644
--- a/test/CodeGen/X86/vec_shuffle-20.ll
+++ b/test/CodeGen/X86/Stats/vec_shuffle-20.ll
diff --git a/test/CodeGen/X86/zero-remat.ll b/test/CodeGen/X86/Stats/zero-remat.ll
index 4242530f77..4242530f77 100644
--- a/test/CodeGen/X86/zero-remat.ll
+++ b/test/CodeGen/X86/Stats/zero-remat.ll
diff --git a/test/Transforms/GVN/Stats/lit.local.cfg b/test/Transforms/GVN/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/GVN/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/GVN/nonescaping-malloc.ll b/test/Transforms/GVN/Stats/nonescaping-malloc.ll
index afcb7fe3bb..afcb7fe3bb 100644
--- a/test/Transforms/GVN/nonescaping-malloc.ll
+++ b/test/Transforms/GVN/Stats/nonescaping-malloc.ll
diff --git a/test/Transforms/GlobalOpt/2009-03-05-dbg.ll b/test/Transforms/GlobalOpt/Stats/2009-03-05-dbg.ll
index 0f3efa09a1..0f3efa09a1 100644
--- a/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
+++ b/test/Transforms/GlobalOpt/Stats/2009-03-05-dbg.ll
diff --git a/test/Transforms/GlobalOpt/Stats/lit.local.cfg b/test/Transforms/GlobalOpt/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/GlobalOpt/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/IndVarSimplify/Stats/lit.local.cfg b/test/Transforms/IndVarSimplify/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/IndVarSimplify/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll b/test/Transforms/IndVarSimplify/Stats/phi-uses-value-multiple-times.ll
index 52c9e5c3ff..52c9e5c3ff 100644
--- a/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
+++ b/test/Transforms/IndVarSimplify/Stats/phi-uses-value-multiple-times.ll
diff --git a/test/Transforms/Inline/delete-call.ll b/test/Transforms/Inline/Stats/delete-call.ll
index 0afd2ee4c2..0afd2ee4c2 100644
--- a/test/Transforms/Inline/delete-call.ll
+++ b/test/Transforms/Inline/Stats/delete-call.ll
diff --git a/test/Transforms/Inline/Stats/lit.local.cfg b/test/Transforms/Inline/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/Inline/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/LICM/hoist-invariant-load.ll b/test/Transforms/LICM/Stats/hoist-invariant-load.ll
index f9fc551df3..f9fc551df3 100644
--- a/test/Transforms/LICM/hoist-invariant-load.ll
+++ b/test/Transforms/LICM/Stats/hoist-invariant-load.ll
diff --git a/test/Transforms/LICM/Stats/lit.local.cfg b/test/Transforms/LICM/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/LICM/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/LoopUnroll/Stats/lit.local.cfg b/test/Transforms/LoopUnroll/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/LoopUnroll/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/LoopUnroll/runtime-loop3.ll b/test/Transforms/LoopUnroll/Stats/runtime-loop3.ll
index 55cf22373e..55cf22373e 100644
--- a/test/Transforms/LoopUnroll/runtime-loop3.ll
+++ b/test/Transforms/LoopUnroll/Stats/runtime-loop3.ll
diff --git a/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll b/test/Transforms/LoopUnswitch/Stats/2008-11-03-Invariant.ll
index 9d73d31d50..9d73d31d50 100644
--- a/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll
+++ b/test/Transforms/LoopUnswitch/Stats/2008-11-03-Invariant.ll
diff --git a/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll b/test/Transforms/LoopUnswitch/Stats/2011-11-18-SimpleSwitch.ll
index bde52da87a..bde52da87a 100644
--- a/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll
+++ b/test/Transforms/LoopUnswitch/Stats/2011-11-18-SimpleSwitch.ll
diff --git a/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches-Threshold.ll b/test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches-Threshold.ll
index c3bf5966ad..c3bf5966ad 100644
--- a/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches-Threshold.ll
+++ b/test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches-Threshold.ll
diff --git a/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll b/test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches.ll
index 95303337da..95303337da 100644
--- a/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll
+++ b/test/Transforms/LoopUnswitch/Stats/2011-11-18-TwoSwitches.ll
diff --git a/test/Transforms/LoopUnswitch/infinite-loop.ll b/test/Transforms/LoopUnswitch/Stats/infinite-loop.ll
index f3fba642f8..f3fba642f8 100644
--- a/test/Transforms/LoopUnswitch/infinite-loop.ll
+++ b/test/Transforms/LoopUnswitch/Stats/infinite-loop.ll
diff --git a/test/Transforms/LoopUnswitch/Stats/lit.local.cfg b/test/Transforms/LoopUnswitch/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/LoopUnswitch/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/MergeFunc/Stats/lit.local.cfg b/test/Transforms/MergeFunc/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/MergeFunc/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/MergeFunc/phi-speculation1.ll b/test/Transforms/MergeFunc/Stats/phi-speculation1.ll
index fd0baffb31..fd0baffb31 100644
--- a/test/Transforms/MergeFunc/phi-speculation1.ll
+++ b/test/Transforms/MergeFunc/Stats/phi-speculation1.ll
diff --git a/test/Transforms/MergeFunc/phi-speculation2.ll b/test/Transforms/MergeFunc/Stats/phi-speculation2.ll
index eec8b5c5a9..eec8b5c5a9 100644
--- a/test/Transforms/MergeFunc/phi-speculation2.ll
+++ b/test/Transforms/MergeFunc/Stats/phi-speculation2.ll
diff --git a/test/Transforms/MergeFunc/vector.ll b/test/Transforms/MergeFunc/Stats/vector.ll
index 4af079f8cd..4af079f8cd 100644
--- a/test/Transforms/MergeFunc/vector.ll
+++ b/test/Transforms/MergeFunc/Stats/vector.ll
diff --git a/test/Transforms/MergeFunc/vectors-and-arrays.ll b/test/Transforms/MergeFunc/Stats/vectors-and-arrays.ll
index dc64a0858b..dc64a0858b 100644
--- a/test/Transforms/MergeFunc/vectors-and-arrays.ll
+++ b/test/Transforms/MergeFunc/Stats/vectors-and-arrays.ll
diff --git a/test/Transforms/TailCallElim/ackermann.ll b/test/Transforms/TailCallElim/Stats/ackermann.ll
index 5b5dbcc225..5b5dbcc225 100644
--- a/test/Transforms/TailCallElim/ackermann.ll
+++ b/test/Transforms/TailCallElim/Stats/ackermann.ll
diff --git a/test/Transforms/TailCallElim/dup_tail.ll b/test/Transforms/TailCallElim/Stats/dup_tail.ll
index 3b87ed3ca6..3b87ed3ca6 100644
--- a/test/Transforms/TailCallElim/dup_tail.ll
+++ b/test/Transforms/TailCallElim/Stats/dup_tail.ll
diff --git a/test/Transforms/TailCallElim/Stats/lit.local.cfg b/test/Transforms/TailCallElim/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/TailCallElim/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True
diff --git a/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll b/test/Transforms/TailDup/Stats/2008-06-11-AvoidDupLoopHeader.ll
index 7853d7ba06..7853d7ba06 100644
--- a/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll
+++ b/test/Transforms/TailDup/Stats/2008-06-11-AvoidDupLoopHeader.ll
diff --git a/test/Transforms/TailDup/Stats/lit.local.cfg b/test/Transforms/TailDup/Stats/lit.local.cfg
new file mode 100644
index 0000000000..89c0cd9d48
--- /dev/null
+++ b/test/Transforms/TailDup/Stats/lit.local.cfg
@@ -0,0 +1,4 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+if not config.root.enable_assertions:
+ config.unsupported = True