General Enhancements

Describes general CCE enhancements to standard Clang

Cray has modifed Clang/LLVM to improve the performance of generated code and to provide additional features. In general, performance improvements are enabled by default at appropriate optimization levels, but features must be requested by an option.

The compiler predefines the macro __cray__ in addition to all of the usual Clang predefined macros.

-fcray, -fno-cray
Select the compiler's default behavior, which provides the basis for customization by other options. The default is -fcray, which enables Cray enhancements, whereas -fno-cray disables Cray enhancements. The last instance of -fcray and -fno-cray applies. The position of -fcray or -fno-cray relative to other options does not matter. For example, with -fcray, other options that disable specific Cray enhancements are honored, and with -fno-cray, other options that enable specific Cray enhancements are honored.

Note that -fno-cray is intended to help diagnose whether a problem is caused by a Cray enhancement or is present in the base Clang/LLVM distribution. Either way, the problem should be reported to Cray to receive the fastest response.

-fenhanced-asm=verbosity
Emit descriptive comments in assembly code output. The default is -fenhanced-asm=1. Greater levels of verbosity will include more provenance information for inlined code. Use -fenhanced-asm=0 to disable.
-fenhanced-ir=verbosity
Emit descriptive comments in IR output. The default is -fenhanced-ir=1. Greater levels of verbosity will include more provenance information for inlined code. Use -fenhanced-ir=0 to disable.