Interesting. I would have been the person to develop that workshop and, I didn't. ;-) Chapters 8 and 9 of the IW55 workshop I sent you have chapters on optimization regarding the C compiler - how to make the compiler force a dual-MAC and then chapter 9 is about memory optimization. These two go hand-in-hand to give you best performance. Again - old info - but hopefully helpful. There was no "optimization" workshop for C55x that I know of - and I'd know. Please, please, realize that this info being 10-12 years old may or may not be pertinent.
I will tell you, however, that our compiler team is the best. I teach customers every other week workshops on TI-RTOS/SYS/BIOS and all MCU architectures plus C6000. I am an unbiased guy when it comes to tools - I tell the good, bad and the ugly. Every OEM has it. But trust me, our compiler team, BIOS team and CCS guys/gals are the best. Especially the compiler team - they continue to squeeze out every cycle possible. I've seen it. So, with the latest C5000 compiler, you can trust it to give you great performance given the fact that you tell the compiler as much as possible about your application. I have not personally used the C5000 compiler in 10 years - but I know the team. Hence my comment about them.
Here are a few generic tips that you may already know:
- use -g and no opt first - get your app working properly (your test vectors should be on function boundaries), but you can still single step in this mode
- step up to -o2 and -g and try things out - make sure everything is working properly. You can still single step for the most part
- read the Compiler User Guide for your target - spend two days reading - you will learn the key switches to flip that may REALLY help. There may be 10 key ones of which 2-3 may have a drastic impact with your specific application
- then try -o3 with no -g and see how it goes - it may just find errors in your code - like any compiler does. ;-)
- then try the "advanced" switches you learned from your two days of reading the compiler guide
- don't use COMPLEX C code - if your co-worker can't figure out in 5 seconds what you're trying to do, neither can the compiler
- continue to use the forums for single-ended questions or problems.
And, good luck...as always...