The following messages appear if the loop is completely disqualified for software pipelining:
- Bad loop structure. This error is very rare and can stem from the following:
- An asm statement inserted in the C code inner loop
- Complex control flow such as GOTO statements and breaks
- Loop contains a call. Sometimes the compiler may not be able to inline a function call that is in a loop. Because the compiler could not inline the function call, the loop could not be software pipelined.
- Too many instructions. There are too many instructions in the loop to software pipeline.
- Software pipelining disabled. Software pipelining has been disabled by a command-line option, such as when using the --disable_software_pipeline option, not using the --opt_level=2 (or -O2) or --opt_level=3 (or -O3) option, or using the --opt_for_speed=0 or --opt_for_speed=1 option.
- Uninitialized iteration counter. The
iteration counter may not have been set to an initial value.
- Suppressed to prevent code expansion. Software pipelining may be suppressed because of the --opt_for_speed=2 option. When the --opt_for_speed=2 option is used, software pipelining is disabled in less promising cases to reduce code size. To enable pipelining, use --opt_for_speed=4 or --opt_for_speed=5.
- Cannot identify iteration counter. The
loop iteration counter could not be identified or was used incorrectly in the
loop body.