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

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
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article C6000 v6.1 Compiler Performance here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article C6000 v6.1 Compiler Performance here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article C6000 v6.1 Compiler Performance here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article C6000 v6.1 Compiler Performance here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity