Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-10 Thread Bill Westfield
I've submitted https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65740 ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-10 Thread Bill Westfield
Another interesting data point or two: 1) This goes back to at least 4.7 2) It's not avr-specific (as you might begin to suspect, given previous discussion.) I can get the same sort of bad behavior out of gcc for x86: BillW-MacOSX-210405 /sw/lib/gcc4.7/bin/g++-fsf-4.7 -c -Os -w foo.cpp

Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-10 Thread Bill Westfield
Hmm. Particularly interesting is this series of Considering paragraphs. about 42 all together (one for each call to move3Servos() in loop()?) Considering void move3Servos(Servo, float, Servo, float, Servo, float, float) with 87 size to be inlined into void loop() in

Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-10 Thread Joern Rennecke
On 9 April 2015 at 01:15, Bill Westfield wes...@gmail.com wrote: Is there a way to get gcc to dump the settings of all the parameters and option settings after it's done parsing the command line? That would be -fverbose-asm combined with -S or --save-temps; this dumps the settings in the

Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-09 Thread Joerg Wunsch
Bill Westfield wes...@gmail.com wrote: Hmm. So I looked at the various command-line parameters other than -fno-inline-small-functions. Maybe, rather than trial error, it's better to debug the (wrong) inline decision made? A quick glance at the compiler options yields -fdump-ipa-cgraph and

Re: [avr-gcc-list] avr-gcc making really bad inlining decisions.

2015-04-08 Thread Bill Westfield
Hmm. So I looked at the various command-line parameters other than -fno-inline-small-functions. max-inline-insns-singleSeveral ... This only affects functions declared inline and methods implemented in a class declaration (C++). The default value is 400. max-inline-insns-autoWhen you use