diff options
author | Chris Lattner <sabre@nondot.org> | 2009-08-04 23:07:12 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-08-04 23:07:12 +0000 |
commit | 4f95d2bda4235d36acd95688d0744d7363214706 (patch) | |
tree | b3acc6fc259e5daa73b96cfc494eae2d5af863bd | |
parent | 00e6df91db433f362ac3410fbbcb8553b8c7ff80 (diff) | |
download | external_llvm-4f95d2bda4235d36acd95688d0744d7363214706.zip external_llvm-4f95d2bda4235d36acd95688d0744d7363214706.tar.gz external_llvm-4f95d2bda4235d36acd95688d0744d7363214706.tar.bz2 |
revert r78048, it isn't worth using assertingvh here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78119 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Value.h | 2 | ||||
-rw-r--r-- | include/llvm/ValueSymbolTable.h | 3 | ||||
-rw-r--r-- | lib/Bitcode/Writer/BitcodeWriter.cpp | 2 | ||||
-rw-r--r-- | lib/VMCore/Value.cpp | 16 |
4 files changed, 11 insertions, 12 deletions
diff --git a/include/llvm/Value.h b/include/llvm/Value.h index 83a5232..3881e35 100644 --- a/include/llvm/Value.h +++ b/include/llvm/Value.h @@ -38,7 +38,7 @@ class TypeSymbolTable; template<typename ValueTy> class StringMapEntry; template <typename ValueTy = Value> class AssertingVH; -typedef StringMapEntry<AssertingVH<> > ValueName; +typedef StringMapEntry<Value*> ValueName; class raw_ostream; class AssemblyAnnotationWriter; class ValueHandleBase; diff --git a/include/llvm/ValueSymbolTable.h b/include/llvm/ValueSymbolTable.h index 9b4ccba..4f8ebe8 100644 --- a/include/llvm/ValueSymbolTable.h +++ b/include/llvm/ValueSymbolTable.h @@ -17,7 +17,6 @@ #include "llvm/Value.h" #include "llvm/ADT/StringMap.h" #include "llvm/Support/DataTypes.h" -#include "llvm/Support/ValueHandle.h" namespace llvm { template<typename ValueSubClass, typename ItemParentClass> @@ -45,7 +44,7 @@ class ValueSymbolTable { /// @{ public: /// @brief A mapping of names to values. - typedef StringMap<AssertingVH<> > ValueMap; + typedef StringMap<Value*> ValueMap; /// @brief An iterator over a ValueMap. typedef ValueMap::iterator iterator; diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index a5c28fc..cb181d2 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1088,7 +1088,7 @@ static void WriteValueSymbolTable(const ValueSymbolTable &VST, // VST_ENTRY: [valueid, namechar x N] // VST_BBENTRY: [bbid, namechar x N] unsigned Code; - if (isa<BasicBlock>(*SI->getValue())) { + if (isa<BasicBlock>(SI->getValue())) { Code = bitc::VST_CODE_BBENTRY; if (isChar6) AbbrevToUse = VST_BBENTRY_6_ABBREV; diff --git a/lib/VMCore/Value.cpp b/lib/VMCore/Value.cpp index 8710b94..2cdd552 100644 --- a/lib/VMCore/Value.cpp +++ b/lib/VMCore/Value.cpp @@ -57,14 +57,6 @@ Value::Value(const Type *ty, unsigned scid) } Value::~Value() { - // If this value is named, destroy the name. This should not be in a symtab - // at this point. - if (Name) - Name->Destroy(); - - // There should be no uses of this object anymore, remove it. - LeakDetector::removeGarbageObject(this); - // Notify all ValueHandles (if present) that this value is going away. if (HasValueHandle) ValueHandleBase::ValueIsDeleted(this); @@ -84,6 +76,14 @@ Value::~Value() { } #endif assert(use_empty() && "Uses remain when a value is destroyed!"); + + // If this value is named, destroy the name. This should not be in a symtab + // at this point. + if (Name) + Name->Destroy(); + + // There should be no uses of this object anymore, remove it. + LeakDetector::removeGarbageObject(this); } /// hasNUses - Return true if this Value has exactly N users. |