https://github.com/nicebert updated https://github.com/llvm/llvm-project/pull/177600
>From 642ef54743fa6415cd2ed402e5090ceb08156329 Mon Sep 17 00:00:00 2001 From: Dhruva Chakrabarti <[email protected]> Date: Fri, 23 Jan 2026 03:54:55 -0600 Subject: [PATCH] [OpenMP] Add negative flag variants for assume options Add -fno-openmp-assume-no-thread-state and -fno-openmp-assume-no-nested-parallelism flags to allow explicit disabling of these assumptions. This follows Clang's standard pattern of providing both positive and negative variants for optimization flags, enabling users to override these assumptions when needed (e.g., for debugging or when defaults change). Part of systematic convergence initiative to minimize differences between LLVM mainline and ROCm fork. --- clang/include/clang/Options/Options.td | 4 ++++ clang/lib/Driver/ToolChains/Clang.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index 88ae8a7286ee9..ee9baeb004d33 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -3974,9 +3974,13 @@ def fno_openmp_assume_threads_oversubscription : Flag<["-"], "fno-openmp-assume- def fopenmp_assume_no_thread_state : Flag<["-"], "fopenmp-assume-no-thread-state">, HelpText<"Assert no thread in a parallel region modifies an ICV">, MarshallingInfoFlag<LangOpts<"OpenMPNoThreadState">>; +def fno_openmp_assume_no_thread_state : Flag<["-"], "fno-openmp-assume-no-thread-state">, + HelpText<"Assert that a thread in a parallel region may modify an ICV">; def fopenmp_assume_no_nested_parallelism : Flag<["-"], "fopenmp-assume-no-nested-parallelism">, HelpText<"Assert no nested parallel regions in the GPU">, MarshallingInfoFlag<LangOpts<"OpenMPNoNestedParallelism">>; +def fno_openmp_assume_no_nested_parallelism : Flag<["-"], "fno-openmp-assume-no-nested-parallelism">, + HelpText<"Assert that a nested parallel region may be used in the GPU">; } // let Group = f_Group } // let Visibility = [ClangOption, CC1Option, FC1Option] diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 41ee88fd5501a..4b50fd80a89a2 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6727,8 +6727,13 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fopenmp-assume-threads-oversubscription"); if (Args.hasArg(options::OPT_fopenmp_assume_no_thread_state)) CmdArgs.push_back("-fopenmp-assume-no-thread-state"); + else if (Args.hasArg(options::OPT_fno_openmp_assume_no_thread_state)) + CmdArgs.push_back("-fno-openmp-assume-no-thread-state"); if (Args.hasArg(options::OPT_fopenmp_assume_no_nested_parallelism)) CmdArgs.push_back("-fopenmp-assume-no-nested-parallelism"); + else if (Args.hasArg( + options::OPT_fno_openmp_assume_no_nested_parallelism)) + CmdArgs.push_back("-fno-openmp-assume-no-nested-parallelism"); if (Args.hasArg(options::OPT_fopenmp_offload_mandatory)) CmdArgs.push_back("-fopenmp-offload-mandatory"); if (Args.hasArg(options::OPT_fopenmp_force_usm)) _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
