-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[OpenACC][Docs] Add a release note for Clang 21 #145938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking.
@llvm/pr-subscribers-clang Author: Erich Keane (erichkeane) ChangesThis patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking. Full diff: https://github.com/llvm/llvm-project/pull/145938.diff 1 Files Affected:
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 01f3b7a557a5c..86216f1503457 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -1068,10 +1068,22 @@ Static Analyzer
New features
^^^^^^^^^^^^
-A new flag - `-static-libclosure` was introduced to support statically linking
-the runtime for the Blocks extension on Windows. This flag currently only
-changes the code generation, and even then, only on Windows. This does not
-impact the linker behaviour like the other `-static-*` flags.
+- A new flag - `-static-libclosure` was introduced to support statically linking
+ the runtime for the Blocks extension on Windows. This flag currently only
+ changes the code generation, and even then, only on Windows. This does not
+ impact the linker behaviour like the other `-static-*` flags.
+- OpenACC support, enabled via `-fopenacc` has reached a level of completeness
+ to finally be at least notionally usable. Currently, the OpenACC 3.4
+ specification has been completely implemented for Sema and AST creation, so
+ nodes will show up in the AST after having been properly checked. Lowering is
+ currently a work in progress, with compute, loop, and combined constructs
+ partially implemented, plus a handful of data and executable constructs
+ implemented. Lowering will only work in Clang-IR mode (so only with a compiler
+ built with Clang-IR enabled, and with `-fclangir` used on the command line).
+ However, note that the Clang-IR implementation status is also quite partial,
+ so frequent 'not yet implemented' diagnostics should be expected. Also, the
+ ACC MLIR dialect does not currently implement any lowering to LLVM-IR, so no
+ code generation is possible for OpenACC.
Crash and bug fixes
^^^^^^^^^^^^^^^^^^^
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM; basically "works great for -fsyntax-only builds, less great for anything else but be patient it's a work in progress."
This patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking.
This patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking.
This patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking.
This patch adds a release note that explains the current status of OpenACC in Clang. Currently we cannot actually make an executable because the OpenACC dialect of MLIR doesn't support any amount of lowering to LLVM-IR, so the usefulness of OpenACC is entirely for front-end related uses, such as tooling or semantic checking.