Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitive
type planes. This saves about 5k on 176.gcc, and is needed for a subsequent
patch of mine I'm working on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10908 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/ReaderInternals.h b/lib/Bytecode/Reader/ReaderInternals.h
index d6a934d..4c0b310 100644
--- a/lib/Bytecode/Reader/ReaderInternals.h
+++ b/lib/Bytecode/Reader/ReaderInternals.h
@@ -97,10 +97,16 @@
bool usesOldStyleVarargs; // Does this module USE old style varargs?
- // LLVM 1.0 & 1.1 had an explicit alignment of data only for the
- // ModuleGlobalInfo block. This was fixed to be like all other blocks in 1.2
+ // Flags to distinguish LLVM 1.0 & 1.1 bytecode formats (revision #0)
+
+ // Revision #0 had an explicit alignment of data only for the ModuleGlobalInfo
+ // block. This was fixed to be like all other blocks in 1.2
bool hasInconsistentModuleGlobalInfo;
+ // Revision #0 also explicitly encoded zero values for primitive types like
+ // int/sbyte/etc.
+ bool hasExplicitPrimitiveZeros;
+
typedef std::vector<ValueList*> ValueTable;
ValueTable Values;
ValueTable ModuleValues;