https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/107233
This patch documents op naming conventions discussed in [this RFC](https://discourse.llvm.org/t/rfc-uniformize-openmp-dialect-operation-names/77715). >From 9affb197d2eb208ea25312a02fa0f93ec64d7513 Mon Sep 17 00:00:00 2001 From: Sergio Afonso <safon...@amd.com> Date: Tue, 3 Sep 2024 12:10:17 +0100 Subject: [PATCH] [MLIR][OpenMP] NFC: Document op naming conventions This patch documents op naming conventions discussed in [this RFC](https://discourse.llvm.org/t/rfc-uniformize-openmp-dialect-operation-names/77715). --- mlir/docs/Dialects/OpenMPDialect/_index.md | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mlir/docs/Dialects/OpenMPDialect/_index.md b/mlir/docs/Dialects/OpenMPDialect/_index.md index f4a468ca84da99..43e82a871db066 100644 --- a/mlir/docs/Dialects/OpenMPDialect/_index.md +++ b/mlir/docs/Dialects/OpenMPDialect/_index.md @@ -12,3 +12,30 @@ other definitions in this dialect, refer to the automatically-generated [ODS Documentation](ODS.md). [TOC] + +## Operation Naming Conventions + +This section aims to standardize how dialect operation names are chosen, to +ensure a level of consistency. There are two categories of names: tablegen names +and assembly names. The former also corresponds to the C++ class that is +generated for the operation, whereas the latter is used to represent it in MLIR +text form. + +Tablegen names are CamelCase, with the first letter capitalized and an "Op" +suffix, whereas assembly names are snake_case, with all lowercase letters and +words separated by underscores. + +If the operation corresponds to a directive, clause or other kind of definition +in the OpenMP specification, it must use the same name split into words in the +same way. For example, the `target data` directive would become `TargetDataOp` / +`omp.target_data`, whereas `taskloop` would become `TaskloopOp` / +`omp.taskloop`. + +Operations intended to carry extra information for another particular operation +or clause must be named after that other operation or clause, followed by the +name of the additional information. The assembly name must use a period to +separate both parts. For example, the operation used to define some extra +mapping information is named `MapInfoOp` / `omp.map.info`. The same rules are +followed if multiple operations are created for different variants of the same +directive, e.g. `atomic` becomes `Atomic{Read,Write,Update,Capture}Op` / +`omp.atomic.{read,write,update,capture}`. _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits