Skip to content

Commit 3d469c0

Browse files
authored
[HLSL] Enable -fconvergent-functions by default (#86571)
Fixes #86506
1 parent f792f14 commit 3d469c0

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3516,7 +3516,8 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts,
35163516
GenerateArg(Consumer, OPT_fblocks);
35173517

35183518
if (Opts.ConvergentFunctions &&
3519-
!(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice))
3519+
!(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice ||
3520+
Opts.HLSL))
35203521
GenerateArg(Consumer, OPT_fconvergent_functions);
35213522

35223523
if (Opts.NoBuiltin && !Opts.Freestanding)
@@ -3914,7 +3915,7 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
39143915

39153916
Opts.ConvergentFunctions = Args.hasArg(OPT_fconvergent_functions) ||
39163917
Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) ||
3917-
Opts.SYCLIsDevice;
3918+
Opts.SYCLIsDevice || Opts.HLSL;
39183919

39193920
Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
39203921
if (!Opts.NoBuiltin)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.4-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
2+
// RUN: %clang_cc1 -triple spirv-linux-vulkan-library -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
3+
4+
void fn() {
5+
};
6+
7+
// CHECK: define{{.*| }}void {{.*}}fn{{.*}}()
8+
// CHECK-SAME: #[[Attr:[0-9]+]]
9+
// CHECK: attributes #[[Attr]] = { {{[^}]*}}convergent{{[^}]*}} }

0 commit comments

Comments
 (0)