diff options
Diffstat (limited to 'llvm/docs')
-rw-r--r-- | llvm/docs/AMDGPUUsage.rst | 61 | ||||
-rw-r--r-- | llvm/docs/CommandGuide/llc.rst | 7 | ||||
-rw-r--r-- | llvm/docs/CommandGuide/lli.rst | 5 | ||||
-rw-r--r-- | llvm/docs/CommandGuide/llvm-dwarfdump.rst | 2 | ||||
-rw-r--r-- | llvm/docs/DeveloperPolicy.rst | 4 | ||||
-rw-r--r-- | llvm/docs/GlobalISel/GenericOpcode.rst | 2 | ||||
-rw-r--r-- | llvm/docs/QualGroup.rst | 43 | ||||
-rw-r--r-- | llvm/docs/SourceLevelDebugging.rst | 2 | ||||
-rw-r--r-- | llvm/docs/TableGen/BackGuide.rst | 24 |
9 files changed, 64 insertions, 86 deletions
diff --git a/llvm/docs/AMDGPUUsage.rst b/llvm/docs/AMDGPUUsage.rst index f971bc0..7780c0a 100644 --- a/llvm/docs/AMDGPUUsage.rst +++ b/llvm/docs/AMDGPUUsage.rst @@ -13239,9 +13239,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. store atomic release - workgroup - global 1. s_waitcnt lgkmcnt(0) & - generic vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL, omit lgkmcnt(0). - Could be split into @@ -13287,8 +13284,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. 2. buffer/global/flat_store store atomic release - workgroup - local 1. s_waitcnt vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit. - If OpenCL, omit. - Could be split into separate s_waitcnt @@ -13376,9 +13371,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. atomicrmw release - workgroup - global 1. s_waitcnt lgkmcnt(0) & - generic vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL, omit lgkmcnt(0). - Could be split into separate s_waitcnt @@ -13423,8 +13415,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. 2. buffer/global/flat_atomic atomicrmw release - workgroup - local 1. s_waitcnt vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit. - If OpenCL, omit. - Could be split into separate s_waitcnt @@ -13508,9 +13498,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. fence release - workgroup *none* 1. s_waitcnt lgkmcnt(0) & vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL and address space is not generic, omit @@ -13637,9 +13624,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. atomicrmw acq_rel - workgroup - global 1. s_waitcnt lgkmcnt(0) & vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL, omit lgkmcnt(0). - Must happen after @@ -13691,8 +13675,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. 2. buffer/global_atomic 3. s_waitcnt vm/vscnt(0) - - If CU wavefront execution - mode, omit. - Use vmcnt(0) if atomic with return and vscnt(0) if atomic with no-return. @@ -13717,8 +13699,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. atomicrmw acq_rel - workgroup - local 1. s_waitcnt vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit. - If OpenCL, omit. - Could be split into separate s_waitcnt @@ -13778,9 +13758,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. atomicrmw acq_rel - workgroup - generic 1. s_waitcnt lgkmcnt(0) & vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL, omit lgkmcnt(0). - Could be split into separate s_waitcnt @@ -13826,9 +13803,9 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. 3. s_waitcnt lgkmcnt(0) & vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). + - If atomic with return, omit + vscnt(0), if atomic with + no-return, omit vmcnt(0). - If OpenCL, omit lgkmcnt(0). - Must happen before the following @@ -14001,9 +13978,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. fence acq_rel - workgroup *none* 1. s_waitcnt lgkmcnt(0) & vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - If OpenCL and address space is not generic, omit @@ -14233,9 +14207,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. load atomic seq_cst - workgroup - global 1. s_waitcnt lgkmcnt(0) & - generic vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit vmcnt(0) and - vscnt(0). - Could be split into separate s_waitcnt vmcnt(0), s_waitcnt @@ -14344,8 +14315,6 @@ table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx10-gfx11-table`. 1. s_waitcnt vmcnt(0) & vscnt(0) - - If CU wavefront execution - mode, omit. - Could be split into separate s_waitcnt vmcnt(0) and s_waitcnt @@ -15347,8 +15316,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_dscnt 0x0``. - The waits can be @@ -15394,8 +15361,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit. - The waits can be @@ -15489,8 +15454,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_dscnt 0x0``. - If OpenCL and CU wavefront @@ -15540,8 +15503,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit all. - The waits can be @@ -15633,8 +15594,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_dscnt 0x0``. - If OpenCL and @@ -15764,8 +15723,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_dscnt 0x0``. - Must happen after @@ -15822,8 +15779,6 @@ the instruction in the code sequence that references the table. | **Atomic without return:** | ``s_wait_storecnt 0x0`` - - If CU wavefront execution - mode, omit. - Must happen before the following ``global_inv``. @@ -15848,8 +15803,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit. - The waits can be @@ -15911,8 +15864,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_loadcnt 0x0``. - The waits can be @@ -16164,8 +16115,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL and address space is @@ -16394,8 +16343,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit ``s_wait_dscnt 0x0`` @@ -16502,8 +16449,6 @@ the instruction in the code sequence that references the table. | ``s_wait_storecnt 0x0`` | ``s_wait_loadcnt 0x0`` | ``s_wait_dscnt 0x0`` - | **CU wavefront execution mode:** - | ``s_wait_dscnt 0x0`` - If OpenCL, omit all. - The waits can be diff --git a/llvm/docs/CommandGuide/llc.rst b/llvm/docs/CommandGuide/llc.rst index 900649f..cc670f6 100644 --- a/llvm/docs/CommandGuide/llc.rst +++ b/llvm/docs/CommandGuide/llc.rst @@ -125,13 +125,6 @@ End-user Options Enable setting the FP exceptions build attribute not to use exceptions. -.. option:: --enable-unsafe-fp-math - - Enable optimizations that make unsafe assumptions about IEEE math (e.g. that - addition is associative) or may not work for all input ranges. These - optimizations allow the code generator to make use of some instructions which - would otherwise not be usable (such as ``fsin`` on X86). - .. option:: --stats Print statistics recorded by code-generation passes. diff --git a/llvm/docs/CommandGuide/lli.rst b/llvm/docs/CommandGuide/lli.rst index 94c0013..8afe10d 100644 --- a/llvm/docs/CommandGuide/lli.rst +++ b/llvm/docs/CommandGuide/lli.rst @@ -107,11 +107,6 @@ FLOATING POINT OPTIONS Enable optimizations that assume no NAN values. -.. option:: -enable-unsafe-fp-math - - Causes :program:`lli` to enable optimizations that may decrease floating point - precision. - .. option:: -soft-float Causes :program:`lli` to generate software floating point library calls instead of diff --git a/llvm/docs/CommandGuide/llvm-dwarfdump.rst b/llvm/docs/CommandGuide/llvm-dwarfdump.rst index 27ad4226..1378302 100644 --- a/llvm/docs/CommandGuide/llvm-dwarfdump.rst +++ b/llvm/docs/CommandGuide/llvm-dwarfdump.rst @@ -83,7 +83,7 @@ OPTIONS .. option:: -n <name>, --name=<name> Find and print all debug info entries whose name - (`DW_AT_name` attribute) is <name>. + (`DW_AT_name`/`DW_AT_linkage_name` attribute) is <name>. .. option:: --lookup=<address> diff --git a/llvm/docs/DeveloperPolicy.rst b/llvm/docs/DeveloperPolicy.rst index b94e79e..45f2df2 100644 --- a/llvm/docs/DeveloperPolicy.rst +++ b/llvm/docs/DeveloperPolicy.rst @@ -413,6 +413,10 @@ Below are some guidelines about the format of the message itself: message self-explanatory. Note that such non-public links should not be included in the submitted code. +* Avoid 'tagging' someone's username in your commits and PR descriptions + (e.g., `@<someUser>`), doing so results in that account receiving a notification + every time the commit is cherry-picked and/or pushed to a fork. + LLVM uses a squash workflow for pull requests, so as the pull request evolves during review, it's important to update the pull request description over the course of a review. GitHub uses the initial commit message to create the pull diff --git a/llvm/docs/GlobalISel/GenericOpcode.rst b/llvm/docs/GlobalISel/GenericOpcode.rst index b055327..661a115 100644 --- a/llvm/docs/GlobalISel/GenericOpcode.rst +++ b/llvm/docs/GlobalISel/GenericOpcode.rst @@ -504,7 +504,7 @@ undefined. G_ABDS, G_ABDU ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Compute the absolute difference (signed and unsigned), e.g. abs(x-y). +Compute the absolute difference (signed and unsigned), e.g. trunc(abs(ext(x)-ext(y)). .. code-block:: none diff --git a/llvm/docs/QualGroup.rst b/llvm/docs/QualGroup.rst index 5c05e4e..0e73ec5 100644 --- a/llvm/docs/QualGroup.rst +++ b/llvm/docs/QualGroup.rst @@ -181,6 +181,46 @@ Membership Review To ensure the group remains active and focused, member participation will be reviewed every six months. Inactive members may be removed following this review. +Decision Taking +--------------- + +The LLVM Qualification Working Group aims to make decisions transparently, collaboratively, and without unnecessary formality. The goal is to maintain efficiency while encouraging broad participation and mutual understanding. + +This section describes the lightweight process used to handle proposals and decisions within the group. It may be revised as the group evolves and gains experience. + +Principles +^^^^^^^^^^ + +* **Consensus first:** The preferred mode of decision-making is consensus through open discussion (primarily on Discord or during sync-up meetings). +* **Inclusiveness and respect:** All viewpoints are encouraged, and members are expected to contribute constructively toward reaching a shared understanding. +* **Transparency:** Discussions leading to a decision should be visible to the group and, whenever appropriate, summarized in public channels (e.g., Discourse meeting notes, Discord channel, documentation updates). + +Consensus and Time Limits +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Discussions remain open until a clear consensus emerges, meaning no sustained objections have been raised after reasonable discussion. + +To prevent open-ended debates, if no new viewpoints are expressed after an agreed period (e.g., 2 weeks), the moderator (typically the person who started the discussion thread) may take one of the following actions: + +* **Summarize the apparent consensus** and close the discussion, or +* **Postpone the topic** to the next sync-up meeting if the outcome remains unclear, or +* **Call for a short vote** to confirm the group’s position. + +Voting Procedure +^^^^^^^^^^^^^^^^ + +When consensus cannot be reached or when a clear yes/no decision is needed: + +* The moderator may call for a **simple vote** using emoji reactions on Discord or a similar visible method. +* A decision passes if it receives a **majority (>50%)** of votes among **participants who voted.** Non-votes are **not counted** in the total. +* To ensure decisions reflect the collective position of the group, **at least three-quarters of the total core members** must participate in the vote for it to be considered valid. +* If results are evenly split **(50/50)**, or if participation falls below this threshold, the topic may be postponed to the next sync-up meeting for further discussion. + +Documentation +^^^^^^^^^^^^^ + +Final decisions should be briefly documented (e.g., in meeting minutes, the corresponding GitHub issue, or Discord discussion thread). Once stable, the resulting policy or outcome may be reflected in this documentation for reference. + Current Topics & Backlog ======================== @@ -205,10 +245,11 @@ Slides used to support discussions during sync-up meetings are stored in LLVM's Available slides: +* (add future entries here) +* `October 2025 <https://docs.google.com/presentation/d/1ND2SkjgcHvcEbQmMd8ExL-PpRXouP49T-wfy3xf2yRQ/edit?usp=sharing>`_ * `September 2025 <https://docs.google.com/presentation/d/1SZAE-QHfJED6CxJCCtBkPDxcw7XU9ORX54TJyXe1ppc/edit?usp=sharing>`_ * `August 2025 <https://docs.google.com/presentation/d/1K8GWoRm8ZAeyyGvTeV5f-sMOhMr7WHiEk6_Nm5Fk10o/edit?usp=sharing>`_ * `July 2025 <https://docs.google.com/presentation/d/1ktURe9qz5ggbdOQYK-2ISpiC18B-Y_35WvGyAnnxEpw/edit?usp=sharing>`_ -* (add future entries here) AI Transcription Policy ======================= diff --git a/llvm/docs/SourceLevelDebugging.rst b/llvm/docs/SourceLevelDebugging.rst index f057b2d..12b5e3e 100644 --- a/llvm/docs/SourceLevelDebugging.rst +++ b/llvm/docs/SourceLevelDebugging.rst @@ -674,7 +674,7 @@ Compiled to LLVM, this function would be represented like this: ret void, !dbg !24 } - attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } + attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" } attributes #1 = { nounwind readnone } !llvm.dbg.cu = !{!0} diff --git a/llvm/docs/TableGen/BackGuide.rst b/llvm/docs/TableGen/BackGuide.rst index 83f8f470..7883d7c 100644 --- a/llvm/docs/TableGen/BackGuide.rst +++ b/llvm/docs/TableGen/BackGuide.rst @@ -17,7 +17,7 @@ information is coded in a declarative style involving classes and records, which are then processed by TableGen. The internalized records are passed on to various backends, which extract information from a subset of the records and generate an output file. These output files are typically ``.inc`` files -for C++, but may be any type of file that the backend developer needs. +for C++, but they may be any type of file that the backend developer needs. This document is a guide to writing a backend for TableGen. It is not a complete reference manual, but rather a guide to using the facilities @@ -114,7 +114,7 @@ The ``Record`` class provides many useful functions. superclasses. * Functions to get a particular field value by specifying its name in various - forms, and returning its value in various forms + forms and returning its value in various forms (see `Getting Record Names and Fields`_). * Boolean functions to check the various attributes of the record. @@ -301,7 +301,7 @@ The ``BitInit`` class is a subclass of ``TypedInit``. Its instances represent the possible values of a bit: 0 or 1. It includes a data member that contains the bit. -*All* of the classes derived from ``TypedInit`` provide the following functions. +*All* of the classes derived from ``TypedInit`` provide the following functions: * A static function named ``get()`` that returns an ``Init`` representing the specified value(s). In the case of ``BitInit``, ``get(true)`` returns @@ -334,7 +334,7 @@ The class provides the following additional functions. ~~~~~~~~~~~ The ``DagInit`` class is a subclass of ``TypedInit``. Its instances -represent the possible direct acyclic graphs (``dag``). +represent the possible directed acyclic graphs (``dag``). The class includes a pointer to an ``Init`` for the DAG operator and a pointer to a ``StringInit`` for the operator name. It includes the count of @@ -357,7 +357,7 @@ The class provides many additional functions: * Functions to get the operands, both individually and together. * Functions to determine whether there are any names and to - get the number of names + get the number of names. * Functions to get the names, both individually and together. @@ -410,7 +410,7 @@ The class provides the usual ``get()`` and ``getValues()`` functions. The latter function returns an ``ArrayRef`` of the vector of pointers to ``Init`` instances. -The class provides these additional functions. +The class provides these additional functions: * A function to get the element type. @@ -461,7 +461,7 @@ The Backend Skeleton ==================== The file ``TableGenBackendSkeleton.cpp`` provides a skeleton C++ translation -unit for writing a new TableGen backend. Here are a few notes on the file. +unit for writing a new TableGen backend. Here are a few notes on the file: * The list of includes is the minimal list required by most backends. @@ -484,7 +484,7 @@ unit for writing a new TableGen backend. Here are a few notes on the file. * The ``run`` function should use the ``emitSourceFileHeader`` helper function to include a standard header in the emitted file. -* Register the class or the function as the command line option +* Register the class or the function as the command-line option with ``llvm/TableGen/TableGenBackend.h``. * Use ``llvm::TableGen::Emitter::OptClass<AddressModesEmitter>`` @@ -516,7 +516,7 @@ If you need to iterate over all the class records: ... } -``ClassPair.second`` gets the class's ``unique_ptr``, then ``.get()`` gets the +``ClassPair.second`` gets the class's ``unique_ptr``, and then ``.get()`` gets the class ``Record`` itself. @@ -612,7 +612,7 @@ Getting Record Superclasses The ``Record`` class provides a function to obtain the direct superclasses of a record. It is named ``getDirectSuperClasses`` and returns an -``ArrayRef`` of an array of ``std::pair`` pairs. Each pair consists of a +``ArrayRef`` of an array of ``std::pair`` instances. Each pair consists of a pointer to the ``Record`` instance for a superclass record and an instance of the ``SMRange`` class. The range indicates the source file locations of the beginning and end of the class definition. @@ -630,7 +630,7 @@ then iterates over the pairs in the returned array. The ``Record`` class also provides a function, ``getSuperClasses``, to return a vector of *all* superclasses of a record. The superclasses are in -post-order: the order in which the superclasses were visited while copying +postorder: the order in which the superclasses were visited while copying their fields into the record. Emitting Text to the Output Stream @@ -752,7 +752,7 @@ The ``PrintDetailedRecords`` Backend The TableGen command option ``--print-detailed-records`` invokes a backend that prints all the global variables, classes, and records defined in the source files. The format of the output is *not* guaranteed to be constant -over time. The output looks like this. +over time. The output looks like this: .. code-block:: text |