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.

to understand the different size of the .out files using different compiler versions

Customer would like to understand why CCS created the different size of the .out files using different compiler versions for the same project, without optimization. 

1) CCS 3.3, C2800 compiler version: 5.2.1, the size of .out file was 274kB.

2) CCS6.0,  C2800 compiler version: 15.12.3.LTS, the size of .out file was 226kB.

And customer found the ISR execution time of the project with the newer compiler version required longer time, but 

Could you please help share any comments on this? Thank you.

  • The size of a .out file is only loosely related to the amount of memory required by the program in it.  Thus, it is not valid to compare the sizes of .out files.  It is better to compare the amount memory required by the program.  To see that, look in the .map file created by the linker.  The .map file created by version 15.12.3.LTS contains a part titled MODULE SUMMARY which shows the total amount of memory used by the program, as well as a few different break downs of that size.  The .map file created by 5.2.1, unfortunately, does not have this feature. Instead, look at the MEMORY CONFIGURATION near the start of the file, and add up the hexadecimal numbers in the used column.  

    If you care about either performance or code size, then optimize by building with compiler option --opt_level=2 or higher.  Most optimizations performed by the compiler reduce both instruction cycles and code size.  A few optimizations, however, do not.  For those optimizations, tell the compiler how much you care about code size by using the option --opt_for_speed=number, where number can be 0-5.  Lower numbers mean you care more about code size, and higher numbers mean you care more about speed.  If you care a lot about reduced code size, then use --opt_for_speed=0.  Please search for both of these options in the C28x compiler manual.

    If that does not resolve the problem, then pick one source file that contains a few functions that perform slower when built with 15.12.3.LTS.  For that source file, please follow the directions in the article How to Submit a Compiler Test Case.  In addition, name the functions that perform slower.

    Thanks and regards,

    -George