Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"
[oota-llvm.git] / include / llvm / IR / Attributes.td
index 5ba76ef3490498fb0262692e0350cc9e93f02c56..0660ed15476ae1639e5cf2f9b933eac892d5d123 100644 (file)
@@ -19,7 +19,7 @@ def Alignment : EnumAttr<"align">;
 /// inline=always.
 def AlwaysInline : EnumAttr<"alwaysinline">;
 
-/// Funciton can access memory only using pointers based on its arguments.
+/// Function can access memory only using pointers based on its arguments.
 def ArgMemOnly : EnumAttr<"argmemonly">;
 
 /// Callee is recognized as a builtin, despite nobuiltin attribute on its
@@ -41,6 +41,13 @@ def Dereferenceable : EnumAttr<"dereferenceable">;
 /// Pointer is either null or dereferenceable.
 def DereferenceableOrNull : EnumAttr<"dereferenceable_or_null">;
 
+/// Function may only access memory that is inaccessible from IR.
+def InaccessibleMemOnly : EnumAttr<"inaccessiblememonly">;
+
+/// Function may only access memory that is either inaccessible from the IR,
+/// or pointed to by its pointer arguments.
+def InaccessibleMemOrArgMemOnly : EnumAttr<"inaccessiblemem_or_argmemonly">;
+
 /// Pass structure in an alloca.
 def InAlloca : EnumAttr<"inalloca">;