If these blocks are empty, there is no reason to even emit the bytecode blocks.
This saves about 15K in 176.gcc, coupled with another patch that I'm working on.

llvm-svn: 10889
diff --git a/llvm/lib/Bytecode/Writer/Writer.cpp b/llvm/lib/Bytecode/Writer/Writer.cpp
index 5675b2a..6467921 100644
--- a/llvm/lib/Bytecode/Writer/Writer.cpp
+++ b/llvm/lib/Bytecode/Writer/Writer.cpp
@@ -164,7 +164,8 @@
 void BytecodeWriter::outputConstants(bool isFunction) {
   ConstantTotalBytes -= Out.size();
   if (isFunction) FunctionConstantTotalBytes -= Out.size();
-  BytecodeBlock CPool(BytecodeFormat::ConstantPool, Out);
+  BytecodeBlock CPool(BytecodeFormat::ConstantPool, Out,
+                      true  /* Elide block if empty */);
 
   unsigned NumPlanes = Table.getNumPlanes();
 
@@ -286,7 +287,8 @@
 
   SymTabBytes -= Out.size();
   
-  BytecodeBlock SymTabBlock(BytecodeFormat::SymbolTable, Out);
+  BytecodeBlock SymTabBlock(BytecodeFormat::SymbolTable, Out,
+                            true/* ElideIfEmpty*/);
 
   for (SymbolTable::const_iterator TI = MST.begin(); TI != MST.end(); ++TI) {
     SymbolTable::type_const_iterator I = MST.type_begin(TI->first);