[llvm-commits] [llvm] r84884 - in /llvm/trunk: include/llvm/CodeGen/MachineModuleInfo.h include/llvm/Metadata.h lib/Bitcode/Writer/BitcodeWriter.cpp lib/Bitcode/Writer/ValueEnumerator.cpp lib/VMCore/AsmWriter.cpp lib/VMCore/Metadata.cpp
Devang Patel
dpatel at apple.com
Thu Oct 22 11:25:29 PDT 2009
Author: dpatel
Date: Thu Oct 22 13:25:28 2009
New Revision: 84884
URL: http://llvm.org/viewvc/llvm-project?rev=84884&view=rev
Log:
Using TrackingVH instead of WeakVH or WeakMetadataVH.
Modified:
llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
llvm/trunk/include/llvm/Metadata.h
llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp
llvm/trunk/lib/VMCore/AsmWriter.cpp
llvm/trunk/lib/VMCore/Metadata.cpp
Modified: llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h Thu Oct 22 13:25:28 2009
@@ -150,7 +150,8 @@
public:
static char ID; // Pass identification, replacement for typeid
- typedef SmallVector< std::pair< WeakMetadataVH, unsigned>, 4 > VariableDbgInfoMapTy;
+ typedef SmallVector< std::pair<TrackingVH<MDNode>, unsigned>, 4 >
+ VariableDbgInfoMapTy;
VariableDbgInfoMapTy VariableDbgInfo;
MachineModuleInfo();
Modified: llvm/trunk/include/llvm/Metadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Metadata.h?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Metadata.h (original)
+++ llvm/trunk/include/llvm/Metadata.h Thu Oct 22 13:25:28 2009
@@ -144,23 +144,6 @@
};
//===----------------------------------------------------------------------===//
-/// WeakMetadataVH - a weak value handle for metadata.
-class WeakMetadataVH : public WeakVH {
-public:
- WeakMetadataVH() : WeakVH() {}
- WeakMetadataVH(MetadataBase *M) : WeakVH(M) {}
- WeakMetadataVH(const WeakMetadataVH &RHS) : WeakVH(RHS) {}
-
- operator Value*() const {
- llvm_unreachable("WeakMetadataVH only handles Metadata");
- }
-
- operator MetadataBase*() const {
- return dyn_cast_or_null<MetadataBase>(getValPtr());
- }
-};
-
-//===----------------------------------------------------------------------===//
/// NamedMDNode - a tuple of other metadata.
/// NamedMDNode is always named. All NamedMDNode element has a type of metadata.
template<typename ValueSubClass, typename ItemParentClass>
@@ -173,8 +156,7 @@
NamedMDNode(const NamedMDNode &); // DO NOT IMPLEMENT
Module *Parent;
- SmallVector<WeakMetadataVH, 4> Node;
- typedef SmallVectorImpl<WeakMetadataVH>::iterator elem_iterator;
+ SmallVector<TrackingVH<MetadataBase>, 4> Node;
void setParent(Module *M) { Parent = M; }
protected:
@@ -216,10 +198,12 @@
/// addElement - Add metadata element.
void addElement(MetadataBase *M) {
- Node.push_back(WeakMetadataVH(M));
+ Node.push_back(TrackingVH<MetadataBase>(M));
}
- typedef SmallVectorImpl<WeakMetadataVH>::const_iterator const_elem_iterator;
+ typedef SmallVectorImpl<TrackingVH<MetadataBase> >::iterator elem_iterator;
+ typedef SmallVectorImpl<TrackingVH<MetadataBase> >::const_iterator
+ const_elem_iterator;
bool elem_empty() const { return Node.empty(); }
const_elem_iterator elem_begin() const { return Node.begin(); }
const_elem_iterator elem_end() const { return Node.end(); }
@@ -241,7 +225,7 @@
/// is [a-zA-Z$._][a-zA-Z$._0-9]*
class MetadataContext {
public:
- typedef std::pair<unsigned, WeakVH> MDPairTy;
+ typedef std::pair<unsigned, TrackingVH<MDNode> > MDPairTy;
typedef SmallVector<MDPairTy, 2> MDMapTy;
typedef DenseMap<const Instruction *, MDMapTy> MDStoreTy;
friend class BitcodeReader;
Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (original)
+++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp Thu Oct 22 13:25:28 2009
@@ -569,14 +569,12 @@
bool RecordedInstruction = false;
for (MetadataContext::MDMapTy::const_iterator PI = P->begin(),
PE = P->end(); PI != PE; ++PI) {
- if (MDNode *ND = dyn_cast_or_null<MDNode>(PI->second)) {
- if (RecordedInstruction == false) {
- Record.push_back(VE.getInstructionID(I));
- RecordedInstruction = true;
- }
- Record.push_back(PI->first);
- Record.push_back(VE.getValueID(ND));
+ if (RecordedInstruction == false) {
+ Record.push_back(VE.getInstructionID(I));
+ RecordedInstruction = true;
}
+ Record.push_back(PI->first);
+ Record.push_back(VE.getValueID(PI->second));
}
if (!Record.empty()) {
if (!StartedMetadataBlock) {
Modified: llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp (original)
+++ llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.cpp Thu Oct 22 13:25:28 2009
@@ -103,8 +103,7 @@
if (MDs)
for (MetadataContext::MDMapTy::const_iterator MI = MDs->begin(),
ME = MDs->end(); MI != ME; ++MI)
- if (MDNode *MDN = dyn_cast_or_null<MDNode>(MI->second))
- EnumerateMetadata(MDN);
+ EnumerateMetadata(MI->second);
}
}
Modified: llvm/trunk/lib/VMCore/AsmWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AsmWriter.cpp?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/AsmWriter.cpp (original)
+++ llvm/trunk/lib/VMCore/AsmWriter.cpp Thu Oct 22 13:25:28 2009
@@ -700,8 +700,7 @@
if (MDs)
for (MetadataContext::MDMapTy::const_iterator MI = MDs->begin(),
ME = MDs->end(); MI != ME; ++MI)
- if (MDNode *MDN = dyn_cast_or_null<MDNode>(MI->second))
- CreateMetadataSlot(MDN);
+ CreateMetadataSlot(MI->second);
}
}
@@ -2039,9 +2038,8 @@
if (MDMap)
for (MetadataContext::MDMapTy::const_iterator MI = MDMap->begin(),
ME = MDMap->end(); MI != ME; ++MI)
- if (const MDNode *MD = dyn_cast_or_null<MDNode>(MI->second))
- Out << ", !" << MDNames[MI->first]
- << " !" << Machine.getMetadataSlot(MD);
+ Out << ", !" << MDNames[MI->first]
+ << " !" << Machine.getMetadataSlot(MI->second);
}
printInfoComment(I);
}
Modified: llvm/trunk/lib/VMCore/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Metadata.cpp?rev=84884&r1=84883&r2=84884&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Metadata.cpp (original)
+++ llvm/trunk/lib/VMCore/Metadata.cpp Thu Oct 22 13:25:28 2009
@@ -34,7 +34,7 @@
if (S) return S;
return S =
- new MDString(Context, StringRef(Entry.getKeyData(), Entry.getKeyLength()));
+ new MDString(Context, Entry.getKey());
}
//===----------------------------------------------------------------------===//
@@ -151,7 +151,7 @@
setName(N);
for (unsigned i = 0; i != NumMDs; ++i)
- Node.push_back(WeakMetadataVH(MDs[i]));
+ Node.push_back(TrackingVH<MetadataBase>(MDs[i]));
if (ParentModule)
ParentModule->getNamedMDList().push_back(this);
@@ -277,8 +277,7 @@
return;
for (MDMapTy::iterator I = In1Info.begin(), E = In1Info.end(); I != E; ++I)
- if (MDNode *MD = dyn_cast_or_null<MDNode>(I->second))
- addMD(I->first, MD, In2);
+ addMD(I->first, I->second, In2);
}
/// getMD - Get the metadata of given kind attached to an Instruction.
@@ -290,7 +289,7 @@
for (MDMapTy::iterator I = Info.begin(), E = Info.end(); I != E; ++I)
if (I->first == MDKind)
- return dyn_cast_or_null<MDNode>(I->second);
+ return I->second;
return NULL;
}
@@ -326,8 +325,7 @@
MDMapTy &In1Info = I->second;
MDMapTy In2Info;
for (MDMapTy::iterator I = In1Info.begin(), E = In1Info.end(); I != E; ++I)
- if (MDNode *MD = dyn_cast_or_null<MDNode>(I->second))
- addMD(I->first, MD, In2);
+ addMD(I->first, I->second, In2);
}
/// ValueIsRAUWd - This handler is used when V1's all uses are replaced by
More information about the llvm-commits
mailing list