Selecting one of the following will take you directly to that section:
Somewhere between -O0 and -O2.
Moderate level of optimization which enables most optimizations.
Like -O2, except that it enables optimizations that take longer to perform or that may generate larger code (in an attempt to make the program run faster).
Enable all the optimizations from -O3 along with other aggressive optimizations that may violate strict compliance with language standards.
Yield faster code for programs that do not require the guarantees of IEEE or ISO rules/specifications.
-Wl,-mllvm passes the named option to the linker, which in turn will pass it to LLVM.
-Wl passes the named option to the linker.
-mllvm passes the named option to LLVM.
Specify the language standard to compile for.
Specify the name of the target processor.
Perform approximate reciprocal on div or sqrt.
Generate output files in LLVM bitcode format, suitable for link time optimization.
Select Fortran 95/03 semantics for assignments to allocatable objects.
Use the gnu89 inline semantics.
Prohibit the compiler to assume the strictest aliasing rules applicable to the language being compiled.
Use the jemalloc library.
Use the mathlib library.
Link the Flang runtime library libpgmath.so. This is only needed explicitly when a C/C++ linker is used to link Fortran object files.
Link the Flang runtime library libflangmain.so. This is only needed explicitly when a C/C++ linker is used to link Fortran object files.
Link the Flang runtime library libflangrti.so. This is only needed explicitly when a C/C++ linker is used to link Fortran object files.
Link the Flang runtime library libflang.so. This is only needed explicitly when a C/C++ linker is used to link Fortran object files.
Allows links to proceed even if there are multiple definitions of some symbols.
Request creation of ".note.gnu.build-id" ELF note section.
Instructs the compiler to conform to the IEEE-754 specifications.
Prohibit optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or +-Infs.
Do not allow optimizations for floating-point arithmetic that (a) assume that arguments and results are valid, or (b) may violate IEEE or ANSI standards.
Enable padding of structures shortened by pointer compression.
Enable repacking of structure elements.
Enable the LoopInterchange Pass.
Enable the LoopFusion Pass for the Bisheng Compiler pipeline.
Determine whether to activate the optimization in loop vectorization that inserts a guard block for the residual loop.
When the flag is disable,the loop invariant instructions will be seen as safe to hoist, and be hoisted to preheader without cost considered. When flag is enable, hoist will be executed only when invariant instruction is guaranteed to be executed.
Enable optimization that hoists expressions from branches to a common dominator, using GVN (global value numbering) to discover expressions computing the same values.
Determine whether to apply the loop branch heuristic optimization without checks or apply it only when the loop count is large enough and the loop contains float point operators.
Enable wide load on certain loops with conditional breaks.
Enable branch probability enhancement for large loops with small trip counts.
Enable hot/cold splitting optimization to improve the memory locality of code. The splitting pass does this by identifying cold blocks and moving them into separate functions.
Splits functions into hot and cold parts.
Support the nonconstant stride to add prefetches.
Enable NEON vector multiplication simplification.
Control the amount of inlining to perform.
Control the unroll factor instead of using a cost model to decide it.
Force a peel count regardless of profiling information.
Enable handling of OpenMP directives #pragma omp in C/C++ and !$omp in Fortran.
Place uninitialized global variables in a common block.
Generate instrumented code to collect execution counts into pathname/default.profraw.
generate the same profile as in the -fprofile-generate and -fprofile-generate= flags.The difference is that the instrumentation is performed after inlining so that the resulted profile has a better context sensitive information.
Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from pathname/default.profdata. Otherwise, it reads from file pathname.
Swap byte-order for unformatted input/output.
Let the type char be unsigned, like unsigned char.
Do not warn if a non-void function does not return a value.
Show commands to run and use verbose output.
Tells the compiler to use a different linker instead of the default linker (ld).
Using numactl to bind processes and memory to cores
ulimit -s <n>
Sets the stack size to n kbytes, or unlimited to allow the stack size to grow without limit.