Make the side-numbering of instructions used by metadata (which is needed to

keep track of instructions that return void) per-function. This fixes PR5278.

This breaks backwards compatibility with the metadata format. That's okay
because we haven't released the metadata bitcode yet.

llvm-svn: 97132
This commit is contained in:
Nick Lewycky 2010-02-25 08:30:17 +00:00
parent ee29cc3b66
commit a72e1af8bf
2 changed files with 2 additions and 2 deletions

View File

@ -1622,6 +1622,7 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
if (Stream.EnterSubBlock(bitc::FUNCTION_BLOCK_ID)) if (Stream.EnterSubBlock(bitc::FUNCTION_BLOCK_ID))
return Error("Malformed block record"); return Error("Malformed block record");
InstructionList.clear();
unsigned ModuleValueListSize = ValueList.size(); unsigned ModuleValueListSize = ValueList.size();
// Add all the function arguments to the value table. // Add all the function arguments to the value table.

View File

@ -39,8 +39,6 @@ static bool CompareByFrequency(const std::pair<const llvm::Type*,
/// ValueEnumerator - Enumerate module-level information. /// ValueEnumerator - Enumerate module-level information.
ValueEnumerator::ValueEnumerator(const Module *M) { ValueEnumerator::ValueEnumerator(const Module *M) {
InstructionCount = 0;
// Enumerate the global variables. // Enumerate the global variables.
for (Module::const_global_iterator I = M->global_begin(), for (Module::const_global_iterator I = M->global_begin(),
E = M->global_end(); I != E; ++I) E = M->global_end(); I != E; ++I)
@ -377,6 +375,7 @@ void ValueEnumerator::EnumerateAttributes(const AttrListPtr &PAL) {
void ValueEnumerator::incorporateFunction(const Function &F) { void ValueEnumerator::incorporateFunction(const Function &F) {
InstructionCount = 0;
NumModuleValues = Values.size(); NumModuleValues = Values.size();
// Adding function arguments to the value table. // Adding function arguments to the value table.