https://github.com/aniplcc updated https://github.com/llvm/llvm-project/pull/86571
>From c22f63359b7391e9f69d74e5d4f4bdf6cf585c2c Mon Sep 17 00:00:00 2001 From: aniplcc <aniplcc...@gmail.com> Date: Tue, 26 Mar 2024 01:35:36 +0530 Subject: [PATCH 1/4] [HLSL] Enable -fconvergent-functions by default --- clang/lib/Frontend/CompilerInvocation.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 7bd91d4791ecf0..30638a9999ca1d 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -3516,7 +3516,8 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts, GenerateArg(Consumer, OPT_fblocks); if (Opts.ConvergentFunctions && - !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) + !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice || + Opts.HLSL)) GenerateArg(Consumer, OPT_fconvergent_functions); if (Opts.NoBuiltin && !Opts.Freestanding) @@ -3914,7 +3915,7 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Opts.ConvergentFunctions = Args.hasArg(OPT_fconvergent_functions) || Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || - Opts.SYCLIsDevice; + Opts.SYCLIsDevice || Opts.HLSL; Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; if (!Opts.NoBuiltin) >From e4fdf29d71803afa87939726292feb9e90f97e04 Mon Sep 17 00:00:00 2001 From: aniplcc <aniplcc...@gmail.com> Date: Wed, 27 Mar 2024 20:23:45 +0530 Subject: [PATCH 2/4] add CodeGenHLSL/convergent-functions.hlsl for testing new defaults --- clang/test/CodeGenHLSL/convergent-functions.hlsl | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 clang/test/CodeGenHLSL/convergent-functions.hlsl diff --git a/clang/test/CodeGenHLSL/convergent-functions.hlsl b/clang/test/CodeGenHLSL/convergent-functions.hlsl new file mode 100644 index 00000000000000..23746ec8703bbe --- /dev/null +++ b/clang/test/CodeGenHLSL/convergent-functions.hlsl @@ -0,0 +1,8 @@ +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.4-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck -check-prefixes=CHECK,CONVFUNC %s + +// CHECK: attributes +// NOCONVFUNC-NOT: convergent +// CONVFUNC-SAME: convergent +// CHECK-SAME: } +void fn() { +}; >From 0955eb2b12d4a84793b7816ab3d876393a9608f4 Mon Sep 17 00:00:00 2001 From: aniplcc <aniplcc...@gmail.com> Date: Wed, 27 Mar 2024 20:32:52 +0530 Subject: [PATCH 3/4] update test with review fix --- clang/test/CodeGenHLSL/convergent-functions.hlsl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/clang/test/CodeGenHLSL/convergent-functions.hlsl b/clang/test/CodeGenHLSL/convergent-functions.hlsl index 23746ec8703bbe..e5deecca2fe1c8 100644 --- a/clang/test/CodeGenHLSL/convergent-functions.hlsl +++ b/clang/test/CodeGenHLSL/convergent-functions.hlsl @@ -1,8 +1,9 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.4-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck -check-prefixes=CHECK,CONVFUNC %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.4-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple spirv-linux-vulkan-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s -// CHECK: attributes -// NOCONVFUNC-NOT: convergent -// CONVFUNC-SAME: convergent -// CHECK-SAME: } void fn() { }; + +// CHECK: define void {{.*}}fn{{.*}}() +// CHECK-SAME: #[[Attr:[0-9]+]] +// CHECK: attributes #[[Attr]] = { {{[^}]*}}convergent{{[^}]*}} } >From 9a25905e9960761bf624ec902f996f58ef506fdd Mon Sep 17 00:00:00 2001 From: aniplcc <aniplcc...@gmail.com> Date: Wed, 27 Mar 2024 22:09:56 +0530 Subject: [PATCH 4/4] update regex --- clang/test/CodeGenHLSL/convergent-functions.hlsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/CodeGenHLSL/convergent-functions.hlsl b/clang/test/CodeGenHLSL/convergent-functions.hlsl index e5deecca2fe1c8..f7c8b642272b1e 100644 --- a/clang/test/CodeGenHLSL/convergent-functions.hlsl +++ b/clang/test/CodeGenHLSL/convergent-functions.hlsl @@ -4,6 +4,6 @@ void fn() { }; -// CHECK: define void {{.*}}fn{{.*}}() +// CHECK: define{{.*| }}void {{.*}}fn{{.*}}() // CHECK-SAME: #[[Attr:[0-9]+]] // CHECK: attributes #[[Attr]] = { {{[^}]*}}convergent{{[^}]*}} } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits