Pipeline Failure Messages
A-5
FeedbackSolutions
Max Cond Regs Live tells us if there are too many conditional values needed
on a given cycle. The ’C62x/’C67x cores have 2 A side and 3 B side condition
registers available. The ’C64x core has 3 A side and 3 B side condition regis-
ters available.
Solution
Try splitting the loop into two separate loops. Repartition if too many instruc-
tions on one side.
For loops with complex control, try the –mh option.
Use symbolic register names instead of machine registers (A0–A15 and
B0–B15 for ’C62x and ’C67x, or A0–A31 and B0–B31 for ’C64x).
For More Information...
See section 6.9,
Loop Unrolling (in Assembly), on page 6-94.
See section 3.4.3.4,
Loop Unrolling (in C), on page 3-44.
TMS320C6000 C/C++ Compiler User’s Guide
Cycle Count Too High. Not Profitable
Description
In rare cases, the iteration interval of a software pipelined loop is higher than
a non-pipelined list scheduled loop. In this case, it is more efficient to execute
the non-software pipelined version.
Solution
Split into multiple loops or reduce the complexity of the loop if possible.
Unpartition/repartition the linear assembly source code.
Add const and restrict keywords where appropriate to reduce dependences.
For loops with complex control, try the –mh option.
Probably best modified by another technique (i.e. loop unrolling).
Modify the register and/or partition constraints in linear assembly.
For more information...
See section 6.9,
Loop Unrolling, on page 6-94.
TMS320C6000 C/C++ Compiler User’s Guide