[PATCH] D55928: [OpenMP] Add flag for preventing the extension to 64 bits for the collapse loop counter

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 20 06:54:03 PST 2018

ABataev added inline comments.

Comment at: docs/OpenMPSupport.rst:119
+time. To prevent this conservative choice and use at most 32 bits,
+compile your program with the `-fopenmp-max-32bit-collapse-width`.

Comment at: include/clang/Basic/LangOptions.def:210
 LANGOPT(OpenMPCUDABlocksPerSM  , 32, 0, "Number of blocks per SM for CUDA devices.")
+LANGOPT(OpenMPMax32BitCollapseWidth  , 1, 0, "Use at most 32 bits to represent the collapsed loop nest counter.")
 LANGOPT(RenderScript      , 1, 0, "RenderScript")
Fix the description and the option in accordance with the option name

Comment at: include/clang/Driver/Options.td:1577
   Flags<[CC1Option, NoArgumentUnused, HelpHidden]>;
+def fopenmp_max_32bit_collapse_width : Flag<["-"], "fopenmp-max-32bit-collapse-width">, Group<f_Group>,
+  Flags<[CC1Option, NoArgumentUnused, HelpHidden]>;
Missed -fno... option

Comment at: lib/Driver/ToolChains/Clang.cpp:4429
       Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_blocks_per_sm_EQ);
+      Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_max_32bit_collapse_width);
You need to change the processing taking into account -fno... option.

Comment at: lib/Frontend/CompilerInvocation.cpp:2848
+  // OpenMP collapse clause.
+  Opts.OpenMPMax32BitCollapseWidth =
+      Args.hasArg(options::OPT_fopenmp_max_32bit_collapse_width) ? 1 : 0;
Also, need to check for -fno... option

  rC Clang



More information about the cfe-commits mailing list