[PATCH] D79636: [LangRef] Clarify the semantics of the `byval` attribute

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 9 08:29:20 PDT 2020


rnk added a comment.

Some copy editing comments, but I agree with the semantics: From the IR perspective, it is better to think of argument stack memory as belonging to the callee. A byval argument has more in common with a local static alloca than a passed in pointer.



================
Comment at: llvm/docs/LangRef.rst:1046
     structs and arrays by value, but is also valid on pointers to
-    scalars. The copy is considered to belong to the caller not the
-    callee (for example, ``readonly`` functions should not write to
-    ``byval`` parameters). This is not a valid attribute for return
-    values.
+    scalars The copy is conceptually made on the call edge. This means that
+    the pointer argument at the call site refers to the original memmory and
----------------
Missing period? "scalars The copy"


================
Comment at: llvm/docs/LangRef.rst:1047
+    scalars The copy is conceptually made on the call edge. This means that
+    the pointer argument at the call site refers to the original memmory and
+    the pointer argument in the callee is refering to the copy. Attributes on
----------------
typo "memmory"


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79636/new/

https://reviews.llvm.org/D79636





More information about the llvm-commits mailing list