Other Parts Discussed in Thread: CCSTUDIO
`A Riddle Wrapped in a Mystery Inside an Enigma'
Can you solve this mystery?
PROBLEM
addspy_i will *not* inline.
mpysp_i will inline.
CONFIGURATION
CCStudio 3.3
fastRTS_c62xc64x_1_42_Windows_Setup.exe
IDE 598.0.393
BIOS 5.41.10.36
CODEGEN v7.2
For a small test project mpysp_i() and addsp_i() inline successfully.
For our application, mpysp_i() always inlines, but addsp_i() never inlines.
I know that inlining is only a "suggestion"
to TI's clever compiler developers. The compiler is are never obliged to do it.
However, there appears no rhyme or reason why mpysp_i() inlines in this application and addsp_i() never does.
Removing application code down to a small test both mpysp_i() and addsp_i() inline just fine.
I have tried many, many, workarounds to no avail.
For example,
Breaking up code into small files.
Making new .h copy of addsp_i() with different names.
Tinkering with all the compiler/assembler flags -g -Ox, ...
Putting all the macros on one line, removing spaces, removing line coninuations, ...
I removed most of the code and can get two addsp_i()'s to inline, but I have about 8 in this code.
It just seems that the compiler just does not like to inline addsp_i() on this particular application.
I have read the Wikis.
I have searched E2E.
I have searched the internet.
I have review all manuals, Prog. Guide, Compiler, ....
My list of possible explanations is down to:
compiler bug.
compiler limit that is hard coded in the compiler. Some limit that addsp_i() reaches, but mpysp_i() does not.
What do you think?