Bernhard Reutner-Fischer wrote: > Some compilers IIRC use !DIR$ unroll, if memory serves me right then > the DEC compiler had !DEC$ unroll. > We could support one or the other three-letter keyword or maybe not.
Intel's compiler supports quite a lot of loop directives. (Its Fortran front end is based on DEC's and part of the developer team also moved from Compaq to Intel. Not that Intel didn't add a bunch of additional directives later on.) Supported are: simd, ivdep, loop count, (no)vector, inline, force, (no)inline, (no)unroll, unroll_and_jam, nofusion and distribution point. GCC support "ivdep" (C/C++), simd (I think only via -fcilkplus; but OpenMP's 'omp simd' is a replacement [-fopenmp/-fopenmp-simd] in C/C++ and Fortran) - and "unroll" as proposed for C/C++ and with this patch for Fortran. By the way: gfortran automatically annotates 'do concurrent' with 'ivdep'. For Intel's loop directives, see: https://software.intel.com/en-us/articles/getting-started-with-intel-composer-xe-2013-compiler-pragmas-and-directives C++: https://software.intel.com/en-us/node/524494 Fortran: https://software.intel.com/en-us/node/525781 * * * Regarding the patch: In general, I prefer to stick to standard methods (which are portable) and think that those user knobs often make things slower than faster (as they tend to stay for years, even after the hard- ware as moved on - or they are even inserted blindly). till, I think it would be fine to add it. Tobias PS: For a non-RFC patch, you also need to update gfortran.texi.