[FFmpeg-devel] [RFC]Move is-align-a-power-of-two test up

Reimar Döffinger Reimar.Doeffinger
Sat Apr 3 19:36:16 CEST 2010


On Sat, Apr 03, 2010 at 05:42:43PM +0100, M?ns Rullg?rd wrote:
> Carl Eugen Hoyos <cehoyos at rainbow.studorg.tuwien.ac.at> writes:
> > FFmpeg compilation with icc's interprocedural optimization between
> > files (-ipo) improves performance by 10% (h264) to 20% (theora).
> > (Only tested with --enable-shared.)
> > Unfortunately, it currently does not work out-of-the-box, because
> > compilation with -ipo does not fail if an invalid value for .align is
> > given ("linking" fails):
> >
> > $ cat align.c
> > void foo(void){ __asm__ volatile(".align 3"); }
> > $ icc align.c -c
> > /tmp/iccgyMZFzas_.s: Assembler messages:
> > /tmp/iccgyMZFzas_.s:13: Error: alignment not a power of 2
> > $ icc align.c -c -ipo
> > (succeeds and builds align.o)
> > $ icc align.o
> > ipo: remark #11001: performing single-file optimizations
> > ipo: remark #11005: generating object file /tmp/ipo_iccWkeAyV.o
> > /tmp/iccTgD2V5as_.s: Assembler messages:
> > /tmp/iccTgD2V5as_.s:13: Error: alignment not a power of 2
> > icc: error #10014: problem during multi-file optimization compilation
> > (code 1)
> 
> Do you have any idea why this is so?

My guess: In this mode, icc only generates some intermediate code but no
actual object code and does the real optimization, converting to asm
and then to object code at the linking stage.



More information about the ffmpeg-devel mailing list