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.
Hi All,
In creating a new CCS project one is required to select one from the four possible RTSC Build-Profiles. The difference between debug and release is relatively more familiar since other developing tools like MS Visual Studio also has them. But what does whole_program mean?
I also have some questions with the more familiar debug and release option. Does debug version runs slower than release version? Quantitatively, how much? If a program fails to meet real-time requirement in debug setting, is it possible for it to satisfy the requirement in release version? Isn't this very difficult to detect?
Sincerely,
Zheng
Zheng,
Whole_program uses a different level of optimization. i.e. optimizes across the whole program including other object files.
Debug will typically be slower than release as release will be using the optimizer and debug will not. As far as how much that is not possible for us to say as it will vary widely by application.
I am going to move the thread into the BIOS forum as the RTSC experts are there.
Regards,
John
Zheng - It's important to note that this build profile only applies to the RTSC packages used by your application (BIOS, XDC, IPC). It doesn't apply to your application's C code.
whole-program optimization is key to the performance of RTSC code, so it's best to just leave this set to whole_program_debug. If you wanted to step through the code in one of the RTSC packages, you'd need to change this to debug.
From the RTSC-pedia:
"With a growing number of contemporary C compilers now supporting whole-program optimization—enabling the compiler to look across multiple source files when generating object code—the initialized constants and small code fragments in our generated C file will typically "melt-away" in the final executable image by applying classic optimizations such as constant folding and function inlining across independent module boundaries.
Supported in all TI compilers as well as the latest GCC and Microsoft offerings, whole-program optimization plays an important role in enabling a higher-level breed of C programming without compromising overall system performance."
Thanks,
Chris
Dear Chris,
There are both "whole_program_debug" and "whole_program":
Is _debug always slower due to the fact that the in order to enable debugging some code must be preserved and hence are not optimized?
Zheng
I believe the BIOS team has benchmarked whole_program_debug vs whole_program and found them to be the same or at least very close. whole_program_debug is still very optimized, and I think it just retains some symbol information so you can debug a little bit better.
I think the default project setting is whole_program, though, so maybe just leave it as that. I imagine you're not interested in stepping through the functions in those RTSC packages anyway.
Chris