aboutsummaryrefslogtreecommitdiff
path: root/lib/Bytecode
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-11-20 18:36:02 +0000
committerChris Lattner <sabre@nondot.org>2002-11-20 18:36:02 +0000
commit6e6026b46569b01f8f6d4dcdb6c899c3a9c76b3e (patch)
tree57322a305c9e9d3273ae9d3d09728ec2662e97d8 /lib/Bytecode
parentc09aab0a4de7e3f65dd830803faadb7abae28872 (diff)
- Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4779 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode')
-rw-r--r--lib/Bytecode/Reader/Reader.cpp4
-rw-r--r--lib/Bytecode/Writer/SlotCalculator.cpp11
-rw-r--r--lib/Bytecode/Writer/Writer.cpp6
3 files changed, 9 insertions, 12 deletions
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 0f9889c4c8..1444501308 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -338,7 +338,7 @@ bool BytecodeParser::ParseMethod(const uchar *&Buf, const uchar *EndBuf,
case BytecodeFormat::SymbolTable:
BCR_TRACE(2, "BLOCK BytecodeFormat::SymbolTable: {\n");
- if (ParseSymbolTable(Buf, Buf+Size, M->getSymbolTableSure())) {
+ if (ParseSymbolTable(Buf, Buf+Size, &M->getSymbolTable())) {
delete M; return true;
}
break;
@@ -543,7 +543,7 @@ bool BytecodeParser::ParseModule(const uchar *Buf, const uchar *EndBuf,
case BytecodeFormat::SymbolTable:
BCR_TRACE(1, "BLOCK BytecodeFormat::SymbolTable: {\n");
- if (ParseSymbolTable(Buf, Buf+Size, Mod->getSymbolTableSure())) {
+ if (ParseSymbolTable(Buf, Buf+Size, &Mod->getSymbolTable())) {
delete Mod; return true;
}
break;
diff --git a/lib/Bytecode/Writer/SlotCalculator.cpp b/lib/Bytecode/Writer/SlotCalculator.cpp
index ca74711b48..5f6f2e7835 100644
--- a/lib/Bytecode/Writer/SlotCalculator.cpp
+++ b/lib/Bytecode/Writer/SlotCalculator.cpp
@@ -90,9 +90,9 @@ void SlotCalculator::processModule() {
// Insert constants that are named at module level into the slot pool so that
// the module symbol table can refer to them...
//
- if (TheModule->hasSymbolTable() && !IgnoreNamedNodes) {
+ if (!IgnoreNamedNodes) {
SC_DEBUG("Inserting SymbolTable values:\n");
- processSymbolTable(TheModule->getSymbolTable());
+ processSymbolTable(&TheModule->getSymbolTable());
}
SC_DEBUG("end processModule!\n");
@@ -156,8 +156,7 @@ void SlotCalculator::incorporateFunction(const Function *M) {
// symboltable references to constants not in the output. Scan for these
// constants now.
//
- if (M->hasSymbolTable())
- processSymbolTableConstants(M->getSymbolTable());
+ processSymbolTableConstants(&M->getSymbolTable());
}
SC_DEBUG("Inserting Labels:\n");
@@ -174,9 +173,9 @@ void SlotCalculator::incorporateFunction(const Function *M) {
for_each(inst_begin(M), inst_end(M),
bind_obj(this, &SlotCalculator::insertValue));
- if (M->hasSymbolTable() && !IgnoreNamedNodes) {
+ if (!IgnoreNamedNodes) {
SC_DEBUG("Inserting SymbolTable values:\n");
- processSymbolTable(M->getSymbolTable());
+ processSymbolTable(&M->getSymbolTable());
}
SC_DEBUG("end processFunction!\n");
diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp
index e85498ce5f..92b6a62cc6 100644
--- a/lib/Bytecode/Writer/Writer.cpp
+++ b/lib/Bytecode/Writer/Writer.cpp
@@ -58,8 +58,7 @@ BytecodeWriter::BytecodeWriter(std::deque<unsigned char> &o, const Module *M)
processMethod(I);
// If needed, output the symbol table for the module...
- if (M->hasSymbolTable())
- outputSymbolTable(*M->getSymbolTable());
+ outputSymbolTable(M->getSymbolTable());
}
// Helper function for outputConstants().
@@ -187,8 +186,7 @@ void BytecodeWriter::processMethod(const Function *F) {
processBasicBlock(*I);
// If needed, output the symbol table for the function...
- if (F->hasSymbolTable())
- outputSymbolTable(*F->getSymbolTable());
+ outputSymbolTable(F->getSymbolTable());
Table.purgeFunction();
}