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.

TM4C123GH6PM: Best Practices for Debug/Release optimizations for TI v20.2.7.LTS compiler 2023

Part Number: TM4C123GH6PM

Hello All,

What are the best practices for Debug/Release configurations at year 2023, using latest version of compiler alongside the latest version of CCS?

I searched for previous topics on the subject and noted: https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/289676/difference-between-release-and-debug-versions-of-a-build

and this topic states that "All that differs between the build options are -g vs. --symdebug:none"

Then I looked at my release/debug configs to see under build > armcompiler > advanced options > advanced debug options there is a debugging model: --symdebug:dwarf with added dwarf version 3.

This is same for both debug and release configurations.

I also compared differences in "summary of flags set" which are:

-mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -O2 --include_path="/home/ubuntu/workspaces/workspace_v12/project51" --include_path="/home/ubuntu/ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/include" --include_path="/home/ubuntu/ti/tivaware_2_2_0_295" --define=ccs="ccs" --define=PART_TM4C123GH6PM --gcc --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi

-mv7M4 --code_state=16 --float_support=FPv4SPD16 -me     --include_path="/home/ubuntu/workspaces/workspace_v12/project51" --include_path="/home/ubuntu/ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/include" --include_path="/home/ubuntu/ti/tivaware_2_2_0_295" --define=ccs="ccs" --define=PART_TM4C123GH6PM -g --gcc --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi

So there is only -O2 on the release config. and no other difference. For the "summary of flag sets" of the Arm Linker, we have exactly the same.

How can I methodically compare both debug and release configurations? Right now I am comparing them one by one from both release/debug configs, which is time consuming.

Would it be safe to say if I just compare the "summary of flag configuations" for both form compiler and linker, that would be complete, or are there other configurations/steps related to debug/release configs/

What are some practices that I can do for Release configuration, provided I wont need debugging for release version, and I can trade off some memory space for performance. Previous articles on the subject are for ti compiler version 5.0, and much has changed, so I needed to ask.

Best Regards,

-C.A.

Any ideas and input greatly appreciated.