

Slides from Felix von Leitner's talk on C and compiler optimizations - nrr
http://www.linux-kongress.org/2009/slides/compiler_survey_felix_von_leitner.pdf

======
yan
Hm, regarding the tail-optimization slides, the example used doesn't look like
a tail-recursive call. I just tried compiling the function he provided using
gcc's -O1, 2 and 3, and neither produced a tail optimized call. I rewrote it
to match what my idea of a tail-recursive call is, and sure enough, under -O2
and -O3, gcc tail-optimized it. It didn't however with no optimization
settings or -O1. I rewrote it as follows:

    
    
      long
      fact(long x, long acc)
      {
         if (x <= 0) return acc;
         return fact(x-1, acc*x);
      }
    

(edit: the whole slide deck is summarized well on the last slide: "If you do
an optimization, test it on real world data. If it’s not drastically faster
but makes the code less readable: undo it.")

~~~
pauldino
I think it depends on the version of gcc; I tried compiling his function with
3.4.5 and it didn't look tail-call-optimized, but with -Os on 4.2.3 it did.

------
logic
It appears that he's been updating this presentation over the years:

<http://www.fefe.de/know-your-compiler.pdf> <http://dl.fefe.de/optimizer-
isec.pdf>

Regardless, it's a good read!

------
aw3c2
Are video/audio recordings available too?

~~~
nrr
... not that I've been able to tell. At least, they aren't posted yet.

