aboutsummaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine/Interpreter
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/ExecutionEngine/Interpreter
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/ExecutionEngine/Interpreter')
-rw-r--r--lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp19
-rw-r--r--lib/ExecutionEngine/Interpreter/Support.cpp7
2 files changed, 11 insertions, 15 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index bc873e290e..89f64b1b9b 100644
--- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
@@ -437,16 +437,15 @@ static FILE *getFILE(PointerTy Ptr) {
// Check to see if the currently loaded module contains an __iob symbol...
GlobalVariable *IOB = 0;
- if (SymbolTable *ST = M->getSymbolTable()) {
- for (SymbolTable::iterator I = ST->begin(), E = ST->end(); I != E; ++I) {
- SymbolTable::VarMap &M = I->second;
- for (SymbolTable::VarMap::iterator J = M.begin(), E = M.end();
- J != E; ++J)
- if (J->first == "__iob")
- if ((IOB = dyn_cast<GlobalVariable>(J->second)))
- break;
- if (IOB) break;
- }
+ SymbolTable &ST = M->getSymbolTable();
+ for (SymbolTable::iterator I = ST.begin(), E = ST.end(); I != E; ++I) {
+ SymbolTable::VarMap &M = I->second;
+ for (SymbolTable::VarMap::iterator J = M.begin(), E = M.end();
+ J != E; ++J)
+ if (J->first == "__iob")
+ if ((IOB = dyn_cast<GlobalVariable>(J->second)))
+ break;
+ if (IOB) break;
}
// If we found an __iob symbol now, find out what the actual address it's
diff --git a/lib/ExecutionEngine/Interpreter/Support.cpp b/lib/ExecutionEngine/Interpreter/Support.cpp
index aa97621214..4c31d2692a 100644
--- a/lib/ExecutionEngine/Interpreter/Support.cpp
+++ b/lib/ExecutionEngine/Interpreter/Support.cpp
@@ -15,13 +15,10 @@ using std::cout;
// LookupMatchingNames helper - Search a symbol table for values matching Name.
//
static inline void LookupMatchingNames(const std::string &Name,
- SymbolTable *SymTab,
+ SymbolTable &SymTab,
std::vector<Value*> &Results) {
- if (SymTab == 0) return; // No symbolic values :(
-
// Loop over all of the type planes in the symbol table...
- for (SymbolTable::iterator I = SymTab->begin(), E = SymTab->end();
- I != E; ++I) {
+ for (SymbolTable::iterator I = SymTab.begin(), E = SymTab.end(); I != E; ++I){
SymbolTable::VarMap &Plane = I->second;
// Search the symbol table plane for this name...