Pipeline Failure Messages
A-7
FeedbackSolutions
Iterations in Parallel > Min. Trip Count
Description
Based on the available information on the minimum trip count, it is not always
safe to execute the pipelined version of the loop. Normally, a redundant loop
would be generated. However, in this case, redundant loop generation has
been suppressed via the –ms0/–ms1 option.
Solution
Add MUST_ITERATE pragma or .trip to provide more information on the mini-
mum trip count
If adding –mh or using a higher value of –mh
n could help, try the following
suggestions:
-
Use –pm program level optimization to gather more trip count information.
-
Use the MUST_ITERATE pragma or the .trip directive to provide minimum
trip count information.
For more information...
See section 3.4.3.3,
Communicating Trip Count Information to the Compiler,
on page 3-43.
See section 6.2.5,
The .trip Directive, on page 6-8.
Register is Live Too Long
Description
Sometimes the compiler finds a valid software pipeline schedule but one or
more of the values is live too long. Lifetime of a register is determined by the
cycle a value is written into it and by the last cycle this value is read by another
instruction. By definition, a variable can never be live longer than the ii of the
loop, because the next iteration of the loop will overwrite that value before it
is read.
After this message, the compiler prints out a detailed description of which val-
ues are live to long:
ii = 11 Register is live too long
|72| –> |74|
|73| –> |75|
The numbers 72, 73, 74, and 75 correspond to line numbers and they can be
mapped back to the offending instructions.