diff --git a/lib/Bytecode/Writer/InstructionWriter.cpp b/lib/Bytecode/Writer/InstructionWriter.cpp
index fe03554..587e6d1 100644
--- a/lib/Bytecode/Writer/InstructionWriter.cpp
+++ b/lib/Bytecode/Writer/InstructionWriter.cpp
@@ -18,9 +18,7 @@
 #include <algorithm>
 
 static Statistic<> 
-NumOversized("bytecodewriter", "Number of oversized instructions");
-static Statistic<> 
-NumNormal("bytecodewriter", "Number of normal instructions");
+NumInstrs("bytecodewriter", "Number of instructions");
 
 typedef unsigned char uchar;
 
@@ -52,7 +50,6 @@
   }
 
   align32(Out);    // We must maintain correct alignment!
-  ++NumOversized;
 }
 
 
@@ -102,7 +99,6 @@
     output_vbr((unsigned)Slot, Out);
   }
   align32(Out);    // We must maintain correct alignment!
-  ++NumOversized;
 }
 
 
@@ -124,7 +120,6 @@
   unsigned Bits = 1 | (Opcode << 2) | (Type << 8) | (Slots[0] << 20);
   //  cerr << "1 " << IType << " " << Type << " " << Slots[0] << endl;
   output(Bits, Out);
-  ++NumNormal;
 }
 
 
@@ -149,7 +144,6 @@
   //  cerr << "2 " << IType << " " << Type << " " << Slots[0] << " " 
   //       << Slots[1] << endl;
   output(Bits, Out);
-  ++NumNormal;
 }
 
 
@@ -175,7 +169,6 @@
   //cerr << "3 " << IType << " " << Type << " " << Slots[0] << " " 
   //     << Slots[1] << " " << Slots[2] << endl;
   output(Bits, Out);
-  ++NumNormal;
 }
 
 void BytecodeWriter::processInstruction(const Instruction &I) {
@@ -246,6 +239,8 @@
     }
   }
 
+  ++NumInstrs;
+
   // Decide which instruction encoding to use.  This is determined primarily by
   // the number of operands, and secondarily by whether or not the max operand
   // will fit into the instruction encoding.  More operands == fewer bits per
