aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-04 23:07:12 +0000
committerChris Lattner <sabre@nondot.org>2009-08-04 23:07:12 +0000
commit4f95d2bda4235d36acd95688d0744d7363214706 (patch)
treeb3acc6fc259e5daa73b96cfc494eae2d5af863bd
parent00e6df91db433f362ac3410fbbcb8553b8c7ff80 (diff)
downloadexternal_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.h2
-rw-r--r--include/llvm/ValueSymbolTable.h3
-rw-r--r--lib/Bitcode/Writer/BitcodeWriter.cpp2
-rw-r--r--lib/VMCore/Value.cpp16
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.