Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

C6000 v6.1 Compiler Performance

From Texas Instruments Wiki
Jump to: navigation, search

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