[PATCH] D125581: [DOC] Improve LangRef description of declare
Sebastian Peryt via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 13 13:20:55 PDT 2022
speryt created this revision.
speryt added reviewers: fhahn, lebedev.ri, RKSimon.
Herald added a subscriber: jdoerfert.
Herald added a project: All.
speryt requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
This patch fixes formatting inside `Functions` section of `declare`
by making it consistent with the way how `define` is written.
Small additional refactoring to `Functions` section is also added.
Fixes #39844 <https://github.com/llvm/llvm-project/issues/39844>
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D125581
Files:
llvm/docs/LangRef.rst
Index: llvm/docs/LangRef.rst
===================================================================
--- llvm/docs/LangRef.rst
+++ llvm/docs/LangRef.rst
@@ -782,14 +782,31 @@
:ref:`parameter attribute <paramattrs>` for the return type, a function
name, a (possibly empty) argument list (each with optional :ref:`parameter
attributes <paramattrs>`), optional :ref:`function attributes <fnattrs>`,
-an optional address space, an optional section, an optional alignment,
-an optional :ref:`comdat <langref_comdats>`,
+an optional address space, an optional section, an optional partition,
+an optional alignment, an optional :ref:`comdat <langref_comdats>`,
an optional :ref:`garbage collector name <gc>`, an optional :ref:`prefix <prefixdata>`,
an optional :ref:`prologue <prologuedata>`,
an optional :ref:`personality <personalityfn>`,
an optional list of attached :ref:`metadata <metadata>`,
an opening curly brace, a list of basic blocks, and a closing curly brace.
+Syntax::
+
+ define [linkage] [PreemptionSpecifier] [visibility] [DLLStorageClass]
+ [cconv] [ret attrs]
+ <ResultType> @<FunctionName> ([argument list])
+ [(unnamed_addr|local_unnamed_addr)] [AddrSpace] [fn Attrs]
+ [section "name"] [partition "name"] [comdat [($name)]] [align N]
+ [gc] [prefix Constant] [prologue Constant] [personality Constant]
+ (!name !N)* { ... }
+
+The argument list is a comma separated sequence of arguments where each
+argument is of the following form:
+
+Syntax::
+
+ <type> [parameter Attrs] [name]
+
LLVM function declarations consist of the "``declare``" keyword, an
optional :ref:`linkage type <linkage>`, an optional :ref:`visibility style
<visibility>`, an optional :ref:`DLL storage class <dllstorageclass>`, an
@@ -800,6 +817,14 @@
collector name <gc>`, an optional :ref:`prefix <prefixdata>`, and an optional
:ref:`prologue <prologuedata>`.
+Syntax::
+
+ declare [linkage] [visibility] [DLLStorageClass]
+ [cconv] [ret attrs]
+ <ResultType> @<FunctionName> ([argument list])
+ [(unnamed_addr|local_unnamed_addr)] [align N] [gc]
+ [prefix Constant] [prologue Constant]
+
A function definition contains a list of basic blocks, forming the CFG (Control
Flow Graph) for the function. Each basic block may optionally start with a label
(giving the basic block a symbol table entry), contains a list of instructions,
@@ -837,24 +862,6 @@
If an explicit address space is not given, it will default to the program
address space from the :ref:`datalayout string<langref_datalayout>`.
-Syntax::
-
- define [linkage] [PreemptionSpecifier] [visibility] [DLLStorageClass]
- [cconv] [ret attrs]
- <ResultType> @<FunctionName> ([argument list])
- [(unnamed_addr|local_unnamed_addr)] [AddrSpace] [fn Attrs]
- [section "name"] [partition "name"] [comdat [($name)]] [align N]
- [gc] [prefix Constant] [prologue Constant] [personality Constant]
- (!name !N)* { ... }
-
-The argument list is a comma separated sequence of arguments where each
-argument is of the following form:
-
-Syntax::
-
- <type> [parameter Attrs] [name]
-
-
.. _langref_aliases:
Aliases
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D125581.429317.patch
Type: text/x-patch
Size: 3249 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220513/a213ec80/attachment.bin>
More information about the llvm-commits
mailing list