[FFmpeg-devel] Remove some optimizations from Makefile
Måns Rullgård
mans
Sun Aug 2 17:27:36 CEST 2009
ami_stuff <ami_stuff at o2.pl> writes:
> Hi,
>
> I would like to propose remove of some optimalizations from makefile.
>
> 1. GCC 4.4.1
>
> -O3 flag activates these optimizations:
>
> -O2
> -finline-functions
> -funswitch-loops
> -fpredictive-commoning
> -fgcse-after-reload
> -ftree-vectorize
We disable -ftree-vectorize because it sucks so badly.
> The problematic optimization is "-funswitch-loops". When I compile FFmpeg with this flag enabled
> as a result:
>
> a) I get monstruary/slow binary generated for m68k.
>
> * libavcodec/dsputil.o + -03 flag -> 1,18MB
> * libavcodec/dsputil.o + -O2 flag -> 306KB
Size isn't everything.
> + -finline-functions
> + -fpredictive-commoning
> + -fgcse-after-reload
> + -ftree-vectorize options
Don't add -ftree-vectorize. It is known to be crap.
> b) GCC 4.4.1 ICEs on "libavcodec/mpegvideo.o" because of
> "-funswitch-loops". Without this flag there is no ICE at all.
4.4.1 works for me.
> 2. GCC 3.4.0
Who cares about that antediluvian version?
It is quite possible, if not likely, that performance can be improved
by tweaking the compiler flags, especially on obscure/little-used
architectures like m68k. However, a more thorough investigation with
proper benchmarks needs to be performed before we change anything.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list