aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Metadata.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-12-28 20:45:51 +0000
committerChris Lattner <sabre@nondot.org>2009-12-28 20:45:51 +0000
commit9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e (patch)
tree11dc009d755eda2b02147fc4be338d0912bce39c /lib/VMCore/Metadata.cpp
parente5bb39b20ea026d0e85d622cd2cce444a8cad2b9 (diff)
downloadexternal_llvm-9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e.zip
external_llvm-9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e.tar.gz
external_llvm-9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e.tar.bz2
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind
doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92225 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Metadata.cpp')
-rw-r--r--lib/VMCore/Metadata.cpp44
1 files changed, 11 insertions, 33 deletions
diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp
index 31e737f..a516d7b 100644
--- a/lib/VMCore/Metadata.cpp
+++ b/lib/VMCore/Metadata.cpp
@@ -261,13 +261,7 @@ private:
StringMap<unsigned> MDHandlerNames;
public:
- /// registerMDKind - Register a new metadata kind and return its ID.
- /// A metadata kind can be registered only once.
- unsigned registerMDKind(StringRef Name);
-
- /// getMDKind - Return metadata kind. If the requested metadata kind
- /// is not registered then return 0.
- unsigned getMDKind(StringRef Name) const;
+ unsigned getMDKindID(StringRef Name);
/// getMD - Get the metadata of given kind attached to an Instruction.
/// If the metadata is not found then return 0.
@@ -308,22 +302,14 @@ public:
};
}
-/// registerMDKind - Register a new metadata kind and return its ID.
-/// A metadata kind can be registered only once.
-unsigned MetadataContextImpl::registerMDKind(StringRef Name) {
- unsigned Count = MDHandlerNames.size();
- assert(MDHandlerNames.count(Name) == 0 && "Already registered MDKind!");
- return MDHandlerNames[Name] = Count + 1;
-}
-
-/// getMDKind - Return metadata kind. If the requested metadata kind
-/// is not registered then return 0.
-unsigned MetadataContextImpl::getMDKind(StringRef Name) const {
- StringMap<unsigned>::const_iterator I = MDHandlerNames.find(Name);
- if (I == MDHandlerNames.end())
- return 0;
+/// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
+unsigned MetadataContextImpl::getMDKindID(StringRef Name) {
+ unsigned &Entry = MDHandlerNames[Name];
- return I->getValue();
+ // If this is new, assign it its ID.
+ if (Entry == 0) Entry = MDHandlerNames.size();
+
+ return Entry;
}
/// addMD - Attach the metadata of given kind to an Instruction.
@@ -472,17 +458,9 @@ bool MetadataContext::isValidName(StringRef MDName) {
return true;
}
-/// registerMDKind - Register a new metadata kind and return its ID.
-/// A metadata kind can be registered only once.
-unsigned MetadataContext::registerMDKind(StringRef Name) {
- assert(isValidName(Name) && "Invalid custome metadata name!");
- return pImpl->registerMDKind(Name);
-}
-
-/// getMDKind - Return metadata kind. If the requested metadata kind
-/// is not registered then return 0.
-unsigned MetadataContext::getMDKind(StringRef Name) const {
- return pImpl->getMDKind(Name);
+/// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
+unsigned MetadataContext::getMDKindID(StringRef Name) const {
+ return pImpl->getMDKindID(Name);
}
/// getMD - Get the metadata of given kind attached to an Instruction.