NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
C6000 v6.1 Compiler Performance
The 6.1 version of the C6000 compiler should, in general, produce faster code than the 6.0 version of the C6000 compiler when -o3/-o2 and no -ms
is used ("all-out performance"). The v6.1 compiler has significantly improved inlining, unrolling, and packed-data (SIMD) heuristics. These new heuristics are largely responsible for the performance changes. (A heuristic is an algorithm that solves a particular problem, but may not give an optimal solution in all cases, usually because the problem is too computationally complex.)
However, there may be isolated cases where the v6.1 C6000 compiler produces code that is slower than the v6.0 C6000 compiler. In addition, code size may also be affected because the improved inlining heuristic is more aggressive when making inlining decisions.
In these cases, the use of certain options may regain the lost performance and code size.
These options should only be applied to the specific portion of code that is affected. Use profiling to identify which functions have degraded performance and ofd6x to identify which files have increased code size. Then, you may need to extract the affected code and put it in a different file; then use file-specific options for the file that contains the extracted code.
If you see... | Try this option | Heuristic affected |
---|---|---|
Performance issues with key loops | --vectorize=off
|
--vectorize=off uses the v6.0 packed-data and unrolling heuristics
|
Larger code size | First try -oi100 . If that doesn't work, then try --disable:newinline .
|
-oi100 reduces the size threshold for automatic inlining. --disable:newinline uses the v6.0 inlining heuristic
|