Understanding Feedback
1-16
After a successful schedule is found at a particular iteration interval, more in-
formation about the loop is displayed. This information may relate to the load
threshold, epilog/prolog collapsing, and projected memory bank conflicts.
Speculative Load Threshold : 12
When an epilog is removed, the loop is run extra times to finish out the last it-
erations, or pipe–down the loop. In doing so, extra loads from new iterations
of the loop will speculatively execute (even though their results will never be
used). In order to ensure that these memory accesses are not pointing to inval-
id memory locations, the Load Threshold value tells you how many extra bytes
of data beyond your input arrays must be valid memory locations (not a
memory mapped I/O etc) to ensure correct execution. In general, in the large
address space of the ’C6000 this is not usually an issue, but you should be
aware of this.
Epilog not entirely removed
Collapsed epilog stages : 1
This refers to the number of epilog stages, or loop iterations that were re-
moved. This can produce a large savings in code size. The –mh enables spec-
ulative execution and improves the compiler’s ability to remove epilogs and
prologs. However, in some cases epilogs and prologs can be partially or en-
tirely removed without speculative execution. Thus, you may see nonzero val-
ues for this even without the –mh option.
Prolog not removed
Collapsed prolog stages : 0
This means that the prolog was not removed. For various technical reasons,
prolog and epilog stages may not be partially or entirely removed.
Minimum required memory pad : 2 bytes
The minimum required memory padding to use -mh is 2 bytes. See the
TMS320C6000 Optimizing C/C++ Compiler User’s Guide for more informa-
tion on the -mh option and the minimum required memory padding.
Minimum safe trip count :2
This means that the loop must execute at lease twice to safely use the software
pipelined version of the loop. If this value is less than the known minimum trip
count, two versions of the loop will be generated. For more information on elim-
inating redundant loops, see section 3.4.3.2, on page 3-42.