Add getOrInsertNamedMetadata().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77646 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2009-07-30 23:59:04 +00:00
parent f1da1f5f97
commit 49fe6c914c
2 changed files with 22 additions and 6 deletions

View File

@ -303,11 +303,16 @@ public:
/// @name Named Metadata Accessors /// @name Named Metadata Accessors
/// @{ /// @{
public: public:
/// getNamedMetadata - Return the first named MDNode in the module with the /// getNamedMetadata - Return the first NamedMDNode in the module with the
/// specified name. This method returns null if a MDNode with the specified /// specified name. This method returns null if a NamedMDNode with the
/// name is not found. /// specified name is not found.
NamedMDNode *getNamedMetadata(const StringRef &Name) const; NamedMDNode *getNamedMetadata(const StringRef &Name) const;
/// getOrInsertNamedMetadata - Return the first named MDNode in the module
/// with the specified name. This method returns a new NamedMDNode if a
/// NamedMDNode with the specified name is not found.
NamedMDNode *getOrInsertNamedMetadata(const StringRef &Name);
/// @} /// @}
/// @name Type Accessors /// @name Type Accessors
/// @{ /// @{

View File

@ -289,13 +289,24 @@ GlobalAlias *Module::getNamedAlias(const StringRef &Name) const {
return dyn_cast_or_null<GlobalAlias>(getNamedValue(Name)); return dyn_cast_or_null<GlobalAlias>(getNamedValue(Name));
} }
/// getNamedMetadata - Return the first named MDNode in the module with the /// getNamedMetadata - Return the first NamedMDNode in the module with the
/// specified name. This method returns null if a MDNode with the specified /// specified name. This method returns null if a NamedMDNode with the
/// name is not found. //// specified name is not found.
NamedMDNode *Module::getNamedMetadata(const StringRef &Name) const { NamedMDNode *Module::getNamedMetadata(const StringRef &Name) const {
return dyn_cast_or_null<NamedMDNode>(getValueSymbolTable().lookup(Name)); return dyn_cast_or_null<NamedMDNode>(getValueSymbolTable().lookup(Name));
} }
/// getOrInsertNamedMetadata - Return the first named MDNode in the module
/// with the specified name. This method returns a new NamedMDNode if a
/// NamedMDNode with the specified name is not found.
NamedMDNode *Module::getOrInsertNamedMetadata(const StringRef &Name) {
NamedMDNode *NMD =
dyn_cast_or_null<NamedMDNode>(getValueSymbolTable().lookup(Name));
if (!NMD)
NMD = NamedMDNode::Create(Name, NULL, 0, this);
return NMD;
}
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Methods for easy access to the types in the module. // Methods for easy access to the types in the module.
// //