Changes in directory llvm/lib/Bitcode/Writer:
ValueEnumerator.cpp updated: 1.2 -> 1.3 Writer.cpp updated: 1.8 -> 1.9 --- Log message: add bitcode alias support --- Diffs of the changes: (+22 -0) ValueEnumerator.cpp | 10 ++++++++++ Writer.cpp | 12 ++++++++++++ 2 files changed, 22 insertions(+) Index: llvm/lib/Bitcode/Writer/ValueEnumerator.cpp diff -u llvm/lib/Bitcode/Writer/ValueEnumerator.cpp:1.2 llvm/lib/Bitcode/Writer/ValueEnumerator.cpp:1.3 --- llvm/lib/Bitcode/Writer/ValueEnumerator.cpp:1.2 Mon Apr 23 19:16:04 2007 +++ llvm/lib/Bitcode/Writer/ValueEnumerator.cpp Wed Apr 25 21:46:40 2007 @@ -28,12 +28,22 @@ for (Module::const_iterator I = M->begin(), E = M->end(); I != E; ++I) EnumerateValue(I); + // Enumerate the aliases. + for (Module::const_alias_iterator I = M->alias_begin(), E = M->alias_end(); + I != E; ++I) + EnumerateValue(I); + // Enumerate the global variable initializers. for (Module::const_global_iterator I = M->global_begin(), E = M->global_end(); I != E; ++I) if (I->hasInitializer()) EnumerateValue(I->getInitializer()); + // Enumerate the aliasees. + for (Module::const_alias_iterator I = M->alias_begin(), E = M->alias_end(); + I != E; ++I) + EnumerateValue(I->getAliasee()); + // FIXME: Implement the 'string constant' optimization. // Enumerate types used by the type symbol table. Index: llvm/lib/Bitcode/Writer/Writer.cpp diff -u llvm/lib/Bitcode/Writer/Writer.cpp:1.8 llvm/lib/Bitcode/Writer/Writer.cpp:1.9 --- llvm/lib/Bitcode/Writer/Writer.cpp:1.8 Tue Apr 24 02:07:11 2007 +++ llvm/lib/Bitcode/Writer/Writer.cpp Wed Apr 25 21:46:40 2007 @@ -309,6 +309,18 @@ Stream.EmitRecord(bitc::MODULE_CODE_FUNCTION, Vals, AbbrevToUse); Vals.clear(); } + + + // Emit the alias information. + for (Module::const_alias_iterator AI = M->alias_begin(), E = M->alias_end(); + AI != E; ++AI) { + Vals.push_back(VE.getTypeID(AI->getType())); + Vals.push_back(VE.getValueID(AI->getAliasee())); + Vals.push_back(getEncodedLinkage(AI)); + unsigned AbbrevToUse = 0; + Stream.EmitRecord(bitc::MODULE_CODE_ALIAS, Vals, AbbrevToUse); + Vals.clear(); + } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits