diff options
author | Chris Lattner <sabre@nondot.org> | 2009-12-28 20:45:51 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-12-28 20:45:51 +0000 |
commit | 9741b1d2ca9e6fca4cb6ffa33022eb35c446cd8e (patch) | |
tree | 11dc009d755eda2b02147fc4be338d0912bce39c /lib/VMCore/Metadata.cpp | |
parent | e5bb39b20ea026d0e85d622cd2cce444a8cad2b9 (diff) | |
download | external_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.cpp | 44 |
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. |