This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

What happend to "whole-program" RTSC build-profile?

Hi,

I often find references to a "whole-program" RTSC build-profile, which seems to enable link-time optimizations when compiling RTSC packages.

However, with CCS-5.4 and CGT-7.4.2 the only options offered are "release" and "debug".
Any idea what happend to "while-program"?

Thank you in advance, Clemens

  • Clemens,
    that profile is still supported by XDCtools. You can type it in the profile drop-down box in the RTSC tab. However, we don't have it as one of the options in the drop-down list because SYS/BIOS either does not support it or gives you a warning that the profile "whole_program" will not be supported in the future, depending on the release.
    If you use SYS/BIOS, try typing in "whole_profile" and check what happens. Some users complained that the build takes too long and that's why we don't use it as a default profile, but if you don't mind longer builds you may get some extra saved memory or cycles. 

  • Hi Sasha,

    Thanks a lot for your answer.
    I still wonder what is the reason of SYS/BIOS complaining that whole_program isn't supported or won't be supported in the future. According to the docs and measurements done on other platforms, whole-program optimizations usually result in impressive performance improvements.

    Regards, Clemens

  • Clemens,
    there were two main problems with the whole program optimizations that we couldn't solve reliably.
    The first problem was a mix of libraries built with the whole_program profile and libraries containing regular object files. This meant a two different link steps, and depending on call dependencies between two sets of libraries we had to generate pragmas to ensure that the symbols needed in the second link step would survive the first link step. But we still kep seeing missing symbols or duplicate symbol definitions in the second step.
    The second problem were unacceptable link times. For some large projects, link times would hit 40 or 50 minutes, and some of our users couldn't accept that no matter how great performance improvements were achieved.

    In the end, the SYS/BIOS team choose a different direction but depending on the development of support for the whole program optimization in the TI toolchain, we might go back to using it in the future. 

  • Thanks a lot for your detailed answer and the insights into why the build-profile is no longer actively supported / promoted.