advice #27002: Detecting compilation with -mu which turns off software pipelining. To optimize, turn off this option.
Your compilation is being done using -mu, which turns off software-pipelining. Software-pipelining is a key optimization for achieving good performance. This Advice is issued to alert you to NOT use compiler option -mu. -mu is a good option for debugging, but it is recommended that this option not be used for production code because of the negative performance implications.
For improved performance, at optimization levels --opt_level=2 (or -O2) and -O3, the compiler attempts to software pipeline your loops. Using -mu turns off this software-pipelining; you may see a performance loss with this option. For best performance, use compiler options -o2 or higher; this is critical for generating efficient code sequences. In general, to achieve maximal performance, avoid using the following in production code :
The easiest way to improve performance is to invoke optimization
by specifying the --opt_level=n option on the compiler command
line. You can use -On to alias the --opt_level option. The n
denotes the level of optimization (0, 1, 2, and 3), which controls
the type and degree of optimization.
--opt_level=0 or -O0
--opt_level=1 or -O1 : Performs all --opt_level=0 (-O0)
optimizations, plus:
--opt_level=2 or -O2 : Performs all --opt_level=1 (-O1)
optimizations, plus:
· --opt_level=3 or -O3 : Performs all --opt_level=2
(or -O2) optimizations, plus:Italic text* Removes all
functions that are never called
Note that -o defaults to -o2. In the absence of any -o options, no
optimization is performed. By default, the -o switch optimizes for
performance. This may increase code size. If code size is an
issue, do not reduce the level of optimization. Instead, use the
-ms switch to affect the optimization goal (performance versus
code size).
For more information, see C6000 Compiler: Recommended Compiler Options.
Using -mu prevents software pipelining and can result in loss of performance.
Remove -mu from compile options; compile with options -o2 or higher.
Want to squeeze a few more Performance Cycles out of your application? Leverage the e2e (Engineer-to-Engineer) online community to get all of your Advice questions answered! Or, give back to the community with your expertise.