/// @name Member Variables
/// @{
private:
- LLVMContext& Context; ///< The LLVMContext from which types and
+ LLVMContext& Context; ///< The LLVMContext from which types and
///< constants are allocated.
GlobalListType GlobalList; ///< The Global Variables in the module
FunctionListType FunctionList; ///< The Functions in the module
/// @name Named Metadata Accessors
/// @{
public:
- /// getNamedMetadata - Return the first named MDNode in the module with the
- /// specified name. This method returns null if a MDNode with the specified
- /// name is not found.
+ /// getNamedMetadata - Return the first NamedMDNode in the module with the
+ /// specified name. This method returns null if a NamedMDNode with the
+ /// specified name is not found.
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
/// @{
public:
/// Print the module to an output stream with AssemblyAnnotationWriter.
void print(raw_ostream &OS, AssemblyAnnotationWriter *AAW) const;
- void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
/// Dump the module to stderr (for debugging).
void dump() const;
/// @}
};
-/// An iostream inserter for modules.
-inline std::ostream &operator<<(std::ostream &O, const Module &M) {
- M.print(O, 0);
- return O;
-}
+/// An raw_ostream inserter for modules.
inline raw_ostream &operator<<(raw_ostream &O, const Module &M) {
M.print(O, 0);
return O;