diff options
author | Chris Lattner <sabre@nondot.org> | 2005-03-06 05:21:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-03-06 05:21:40 +0000 |
commit | a98cbe57ea971c707fb5b4c679e72eff8b251833 (patch) | |
tree | 5c270cbe27be3d96ebf626e07683214a6bf472cc /lib/VMCore/SymbolTable.cpp | |
parent | ee4da939b0ee2615a4b32f67e4bed4b566decc53 (diff) | |
download | external_llvm-a98cbe57ea971c707fb5b4c679e72eff8b251833.zip external_llvm-a98cbe57ea971c707fb5b4c679e72eff8b251833.tar.gz external_llvm-a98cbe57ea971c707fb5b4c679e72eff8b251833.tar.bz2 |
Remove some really gross and hard to understand code now that
InternallyInconsistent is always false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20477 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/SymbolTable.cpp')
-rw-r--r-- | lib/VMCore/SymbolTable.cpp | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/lib/VMCore/SymbolTable.cpp b/lib/VMCore/SymbolTable.cpp index a4a0134..024d4b3 100644 --- a/lib/VMCore/SymbolTable.cpp +++ b/lib/VMCore/SymbolTable.cpp @@ -94,7 +94,6 @@ Type* SymbolTable::lookupType( const std::string& Name ) const { // Remove a value void SymbolTable::remove(Value *N) { assert(N->hasName() && "Value doesn't have name!"); - if (InternallyInconsistent) return; plane_iterator PI = pmap.find(N->getType()); assert(PI != pmap.end() && @@ -115,15 +114,11 @@ void SymbolTable::changeName(Value *V, const std::string &name) { assert(PI != pmap.end() && "Value doesn't have an entry in this table?"); ValueMap &VM = PI->second; - value_iterator VI; + value_iterator VI = VM.find(V->getName()); + assert(VI != VM.end() && "Value does have an entry in this table?"); - if (!InternallyInconsistent) { - VI = VM.find(V->getName()); - assert(VI != VM.end() && "Value does have an entry in this table?"); - - // Remove the old entry. - VM.erase(VI); - } + // Remove the old entry. + VM.erase(VI); // See if we can insert the new name. VI = VM.lower_bound(name); @@ -141,7 +136,6 @@ void SymbolTable::changeName(Value *V, const std::string &name) { // removeEntry - Remove a value from the symbol table... Value *SymbolTable::removeEntry(plane_iterator Plane, value_iterator Entry) { - if (InternallyInconsistent) return 0; assert(Plane != pmap.end() && Entry != Plane->second.end() && "Invalid entry to remove!"); @@ -189,7 +183,6 @@ void SymbolTable::remove(const Type* Ty ) { // removeEntry - Remove a type from the symbol table... Type* SymbolTable::removeEntry(type_iterator Entry) { - if (InternallyInconsistent) return 0; assert( Entry != tmap.end() && "Invalid entry to remove!"); const Type* Result = Entry->second; @@ -249,11 +242,8 @@ void SymbolTable::insertEntry(const std::string &Name, const Type *VTy, VM = &PI->second; VI = VM->lower_bound(Name); if (VI != VM->end() && VI->first == Name) { - std::string UniqueName = getUniqueName(VTy, Name); - assert(InternallyInconsistent == false && - "Infinite loop inserting value!"); - V->Name = UniqueName; - VM->insert(VI, make_pair(UniqueName, V)); + V->Name = getUniqueName(VTy, Name); + VM->insert(make_pair(V->Name, V)); return; } } @@ -371,17 +361,6 @@ void SymbolTable::refineAbstractType(const DerivedType *OldType, // one use the old one... NewGV->uncheckedReplaceAllUsesWith(ExistGV); - // Now we just convert it to an unnamed method... which won't get - // added to our symbol table. The problem is that if we call - // setName on the method that it will try to remove itself from - // the symbol table and die... because it's not in the symtab - // right now. To fix this, we have an internally consistent flag - // that turns remove into a noop. Thus the name will get null'd - // out, but the symbol table won't get upset. - // - assert(InternallyInconsistent == false && - "Symbol table already inconsistent!"); - // Update NewGV's name, we're about the remove it from the symbol // table. NewGV->Name = ""; |