Add a convenince member function for appending strings to a module's
[oota-llvm.git] / include / llvm / ParameterAttributes.h
index 86287e0a3ba5444d836eb6014a9df1215bdc4ccb..c2d60786c259ff08446b0e228364fb6d4d73ff96 100644 (file)
@@ -35,7 +35,8 @@ enum Attributes {
   NoReturn   = 1 << 2, ///< mark the function as not returning
   InReg      = 1 << 3, ///< force argument to be passed in register
   StructRet  = 1 << 4, ///< hidden pointer to structure to return
-  NoUnwind   = 1 << 5  ///< Function doesn't unwind stack
+  NoUnwind   = 1 << 5, ///< Function doesn't unwind stack
+  NoAlias    = 1 << 6  ///< Considered to not alias after call.
 };
 
 }
@@ -46,6 +47,13 @@ enum Attributes {
 struct ParamAttrsWithIndex {
   uint16_t attrs; ///< The attributes that are set, |'d together
   uint16_t index; ///< Index of the parameter for which the attributes apply
+  
+  static ParamAttrsWithIndex get(uint16_t idx, uint16_t attrs) {
+    ParamAttrsWithIndex P;
+    P.index = idx;
+    P.attrs = attrs;
+    return P;
+  }
 };
 
 /// @brief A vector of attribute/index pairs.
@@ -161,6 +169,10 @@ class ParamAttrsList : public FoldingSetNode {
       return attrs[attr_index].index;
     }
 
+    uint16_t getParamAttrsAtIndex(unsigned attr_index) const {
+      return attrs[attr_index].attrs;
+    }
+    
     /// Determines how many parameter attributes are set in this ParamAttrsList.
     /// This says nothing about how many parameters the function has. It also
     /// says nothing about the highest parameter index that has attributes.