[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-26 Thread via cfe-commits
darkbuck wrote: > We should be removing the source level convergent attribute, not adding more > uses of it. It was a mistake to define it in the positive direction, and it > is completely unusable for end users. Every piece of code that transitively > calls the function in the entire program

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread Matt Arsenault via cfe-commits
https://github.com/arsenm requested changes to this pull request. We should be removing the source level convergent attribute, not adding more uses of it. It was a mistake to define it in the positive direction, and it is completely unusable for end users. Every piece of code that transitively

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/7] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s darkbuck wrote: Update the test again with '--check-globals=all'. That output is the expected one. https://github.com/llvm/llvm-project/pull/100637

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/6] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s darkbuck wrote: > Please don't merge an "auto-generated" file that isn't actually autogenerated > by the in-tree version. > > (Is --check-attributes not wha

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread Eli Friedman via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s efriedma-quic wrote: Please don't merge an "auto-generated" file that isn't actually autogenerated by the in-tree version. (Is --check-attributes not what y

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s darkbuck wrote: I hacked `llvm/utils/UpdateTestChecks/common.py` a little bit to generate attribute def checks. I may ask for another review on that hack on

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/6] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s darkbuck wrote: > Consider using update_cc_test_checks.py. > > I'd like to see checks that we emit convergence tokens on targets where > that's the default.

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/5] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/4] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread Eli Friedman via cfe-commits
@@ -0,0 +1,99 @@ +// RUN: %clang_cc1 -emit-llvm %s -triple x86_64-unknown-linux-gnu -o - | FileCheck %s efriedma-quic wrote: Consider using update_cc_test_checks.py. I'd like to see checks that we emit convergence tokens on targets where that's the default. h

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/2] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread Eli Friedman via cfe-commits
efriedma-quic wrote: Missing testcase for the generated IR. https://github.com/llvm/llvm-project/pull/100637 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread Richard Smith via cfe-commits
https://github.com/zygoloid commented: Seems logical and useful to me. This PR will need more tests: specifically, please make sure you have test coverage for the diagnostic, and for LLVM IR generation for both convergent calls and convergent inline asm. Please also update the documentation f

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck updated https://github.com/llvm/llvm-project/pull/100637 >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu, 25 Jul 2024 15:19:15 -0400 Subject: [PATCH 1/2] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?U

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
darkbuck wrote: One motivation for this patch is to be able to mark individual inline asms with 'convergent.' So far, CUDA/HIP assumes all calls and inline-asms are convergent and marks all of them with 'convergent.' This guarantees correctness but loses possible optimizations for inline-asms

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff 52b6b1eb976341956c9c75f6572c37d445fcb332 d9de73264bf4d555e7e09a2c2687eae72c1fa19e --e

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-codegen Author: None (darkbuck) Changes - So that it could be used to mark a call or inline-asm as 'convergent' to prevent illegal code motion. --- Full diff: https://github.com/llvm/llvm-project/pull/100637.diff 6 Files Affected: - (modifie

[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)

2024-07-25 Thread via cfe-commits
https://github.com/darkbuck created https://github.com/llvm/llvm-project/pull/100637 - So that it could be used to mark a call or inline-asm as 'convergent' to prevent illegal code motion. >From d9de73264bf4d555e7e09a2c2687eae72c1fa19e Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Thu,