On 14/01/14 03:00, DJ Delorie wrote:
> 
> Some quick answers where available...
> 
>> and probably not MSP430 specific, with -Os "static inline
>> functions()" are not inlined, i also tried adding
>> __attribute__((always_inline)) but it did not seem to have an effect
>> in a quick test.
> 
> Please try "extern inline functions()" instead.  There was a change in
> the ISO standard that's been tripping up lots of software like this.
> 

"extern inline" has different semantics than "static inline".  It will
not often make a difference, but it /could/ happen (for example, I
believe an "extern inline" function may not refer to "static const"
data, whereas a "static inline" function can do so).  It is also
important that "static inline" functions get properly inlined, because
they are heavily used in real-world code and work as expected on other
compilers.

Also, if I understand the complicated rules correctly, there is a
difference in C++ - with "extern inline" you must be sure that all
definitions in all translation units are identical, while with "static
inline" they can be different.


I believe, but I'm not sure, that if a "static inline" function with the
"always_inline" attribute is /not/ inlined, then this is a bug in the
compiler - according to the manual, such functions will always be
inlined even with no optimisation specified (unless you have the
-fno-inline flag active).


Certainly it is worth compiling with the "-Winline" flag to see /why/
these "static inline" functions are not being inlined.

It is also usually worth enabling "-finline-small-functions" - if the
heuristics used are accurate, this should be enabled for -Os as it will
lead to smaller code (according to the manual).


>> it was probably a design decision to change the ABI and start with
>> R12 instead of R15 for parameters. this leads to some work with
>> assembler modules interacting with c modules.
> 
> The ABI is intended to be compatible with TI's own compiler.
> 
>> positively, after working around these issues (we use custom linker
>> scripts anyway as we reserve space for a bootlaoder, MSP430F2xx) it
>> compiles and runs :-)
> 
> Woot!
> 

It is great to hear of this success.  Of course, it is not unexpected,
given the company and people doing the gcc port (and Chris is not
exactly a newbie here!).  I look forward to using the new toolchain
myself in the future.

mvh.,

David



------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to