6.6.1.18 -mno-pa
Do not enable the procedure abstraction optimization (This is the default).
Note: The procedure abstractor behaves as the inverse of inlining
functions. The pass is designed to extract common code sequences from multiple sites
throughout a translation unit and place them into a common area of code. Although this
option generally does not improve the run-time performance of the generated code, it can
reduce the code size significantly. Programs compiled with
-mpa
can be
harder to debug.
The procedure abstractor is invoked as a separate phase of compilation,
after the production of an assembly file. This phase does not optimize across
translation units. When the procedure-optimizing phase is enabled, inline assembly code
must be limited to valid machine instructions. Invalid machine instructions or
instruction sequences, or assembler directives (sectioning directives, macros, include
files, etc.), must not be used, or the procedure abstraction phase will fail, inhibiting
the creation of an output file.