[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