Add a module flags accessor method which returns the flags in a vector.
[oota-llvm.git] / include / llvm / Module.h
index 046798845bec97ca64d3840529f40f3f2cbcb980..e068f93deb39f58f4020cc8fe9c7a801d0df4fce 100644 (file)
@@ -179,6 +179,14 @@ public:
   ///                   values.
   enum ModAttrBehavior { Error = 1, Warning  = 2, Require = 3, Override = 4 };
 
+  struct ModuleFlagEntry {
+    unsigned Behavior;
+    MDString *Key;
+    Value *Val;
+    ModuleFlagEntry(unsigned B, MDString *K, Value *V)
+      : Behavior(B), Key(K), Val(V) {}
+  };
+
 /// @}
 /// @name Member Variables
 /// @{
@@ -401,6 +409,9 @@ public:
 /// @name Module Flags Accessors
 /// @{
 
+  /// getModuleFlagsMetadata - Returns the module flags in the provided vector.
+  void getModuleFlagsMetadata(SmallVectorImpl<ModuleFlagEntry> &Flags) const;
+
   /// getModuleFlagsMetadata - Returns the NamedMDNode in the module that
   /// represents module-level flags. This method returns null if there are no
   /// module-level flags.