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.

Default "Release" options for CCSv4 (v4.2.1)



I was having trouble getting CCSv4 to to match the performance of CCSv3.3. In the end, I found this was a problem with the default options used for the "Release" configuration in CCSv4.2.1.00004 (cgt 7.0.3). Unfortunately, the current "Release" options are:

    -g –o2

which provides the unoptimized result of 285 cycles.

When I switch the options, I get better results:  (measured by CCSv4 profiler on C64x+ cycle accurate simulator)

Options

Cycles

-g –o2 (CCSv4 default)

285

-o2

277

-g –o3

86

-o3 (CCSv3.3. default)

80

I’m confused as to why the default options were changed from those found in CCSv3.3 - which resulted in much faster code. Further, I can’t explain why we would have “debugging” turned on for “Release” . (Oh, and don’t get me started on –pm … very hard to find and won’t build.)

The steps used to build/test my project were:

  1. Create a new CCS Project
  2. Use the empty BIOS 5 project template
  3. Add a new (default) TCF file to the project for the C64x+ simulator
  4. Add my c/h files (previously used with CCSv3.3. project) to the new eclipse project
  5. Build and profile using both "Debug" and "Release" build configurations
  6. Change and record results for various "Release" build options

Thanks,
Scott

  • Hi Scott,

    The default build options can vary per device. The device xml files can have default build options specified in there. So even two different C64x+ devices can have a different set of default options. For custom/generic devices that do not use a device xml file, they will then resort to the CCS defaults for that ISA.

    I agree that the options for the default release config in your example is not what I would expect. At least not the -g part. Will need to look into that.

    Thanks for the feedback

    ki