SPRUI04F july 2015 – april 2023
At optimization levels --opt_level=2 (or -O2) and -O3, the compiler attempts to software pipeline your loops. You might not want your loops to be software pipelined for debugging reasons. Software-pipelined loops are sometimes difficult to debug because the code is not presented serially. The --disable_software_pipeline option affects both compiled C/C++ code and assembly optimized code.
Software pipelining without the use of SPLOOP can lead to significant increases in code size. To control code size for loops that get software pipelined, the --opt_for_space option is recommended over the --disable_software_pipeline option. The --opt_for_space option is capable of disabling non-SPLOOP software pipelining if necessary to achieve code size savings, but it does not affect the SPLOOP capability (Section 4.8). SPLOOP does not significantly increase code size, but can greatly speed up a loop. Using the --disable_software_pipeline option disables all software pipelining including SPLOOP.