Skip to content

Latest commit

 

History

History
31 lines (28 loc) · 10.3 KB

compiler.md

File metadata and controls

31 lines (28 loc) · 10.3 KB

Compiler Options

Todo: scribed current compiler options and what their purpose is (what was encountered in the past in order for the options to be as they are now?)

  • Release: optimized with -O3 for execution runs
  • Debug: debugger options
  • Sanitize: GNU sanitizer for further debugging
Compiler-Flag Options,List What does it do?
--ffpe-trap=list invalid invalid floating point operation, such as SQRT(-1.0)
zero division by zero
overflow overflow in a floating point operation
underflow underflow in a floating point. DO NOT USE. Because a small value can occure, such as exp(-766.2). operation
precision loss of precision during operation
Some of the routines in the Fortran runtime library, like CPU_TIME, are likely to trigger floating point exceptions when ffpe-trap=precision is used. For this reason, the use of ffpe-trap=precision is not recommended.
denormal operation produced a denormal value
-fbacktrace runtime error should lead to a backtrace of the error
-fcheck=keyword all enable all run-time check
array-temps Warns at run time when for passing an actual argument a temporary array had to be generated. The information generated by this warning is sometimes useful in optimization, in order to avoid such temporaries.
bounds Enable generation of run-time checks for array subscripts and against the declared minimum and maximum values. It also checks array indices for assumed and deferred shape arrays against the actual allocated bounds and ensures that all string lengths are equal for character array constructors without an explicit typespec.
do Enable generation of run-time checks for invalid modification of loop iteration variables
mem Enable generation of run-time checks for memory allocation. Note: This option does not affect explicit allocations using theALLOCATE statement, which will be always checked.
pointer Enable generation of run-time checks for pointers and allocatables.
recursion Enable generation of run-time checks for recursively called subroutines and functions which are not marked as recursive. See also -frecursive. Note: This check does not work for OpenMP programs and is disabled if used together with -frecursiveand -fopenmp.
-fdump-core Request that a core-dump file is written to disk when a runtime error is encountered on systems that support core dumps. This option is only effective for the compilation of the Fortran main program
-fstack-arrays Adding this option will make the Fortran compiler put all local arrays, even those of unknown size onto stack memory. If your program uses very large local arrays it is possible that you will have to extend your runtime limits for stack memory on some operating systems. This flag is enabled by default at optimization level -Ofast.
-frepack-arrays In some circumstances GNU Fortran may pass assumed shape array sections via a descriptor describing a noncontiguous area of memory. This option adds code to the function prologue to repack the data into a contiguous block at runtime.This should result in faster accesses to the array. However it can introduce significant overhead to the function call, especially when the passed data is noncontiguous.
-finline-matmul-limit=n
-finit-local-zero The -finit-local-zero option instructs the compiler to initialize local INTEGER, REAL, and COMPLEX variables to zero, LOGICALvariables to false, and CHARACTER variables to a string of null bytes