Version: 4.1.2.00027
Hi,
I am trying to use the program level compilation option so that I can get the benefits of program level optimisation. Without --program_level_compile defined my project builds successfully.
With --program_level_compile defined raises a couple of questions:
1. I was expecting to see a single .asm file as described in section 3.3 of the TI ARM Optimizing C/C++ Compiler v4.6 User Guide (SPNU151E). However, I still have an .asm file for each .C file. So I am not convinced that the --program_level_compile has been recognised. I note that this same section states 'However, if any file has a file-specific option that is not selected as a project-wide option, that file is compiled separately', but as far as I am aware I do not have file-specific options.
2. Where I have a successful build without --program_level_compile, with --program_level_compile I get linker errors relating to the redefinition of some debug symbols, for example '#10056: symbol "__TI_DW.debug_info.f91965596ebba1def9b5918b8714db57" redefined: first defined in "./DriverSoftware/MicrocontrollerDrivers/Nmi.obj"; redefined in "./DriverSoftware/MicrocontrollerDrivers/Esm.obj" MvMotorControlTMS570 line 0 1294923529751 35610'. These are not my symbols so I have no idea what they are. I do not have any duplicate redefined symbols in these files, though I have to say that the code is identical so maybe a confusion has occurred during merge. This problem is resolved by suppressing all symbolic debug generation (--symdebug:none).
FYI I have the following pertinent compiler options selected:
--keep_asm -g, -O3, --opt_for_speed=5, --gen_opt_info=2, --preproc_with_compile, --program_level_compile