[FFmpeg-devel] [RFC] Loop unrolling in C code for 'vector_fmul_*' functions
Rich Felker
dalias
Fri Jan 11 03:25:04 CET 2008
On Fri, Jan 11, 2008 at 12:33:04AM +0000, M?ns Rullg?rd wrote:
> Loren Merritt <lorenm at u.washington.edu> writes:
>
> > On Fri, 11 Jan 2008, mark cox wrote:
> >> On Jan 11, 2008 7:39 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >>
> >>> Add a assert((len & 7) == 0); and the compiler can know it.
> >>
> >> That is a really interesting statement. are you saying that gcc will
> >> optimize by adding such an assert? This is the first i have heard of this.
> >> such code annotations could probably help in many places.
> >
> > No, he's saying that the information is then available to the compiler,
> > so the above advice about complaining to the gcc devs about suboptimal
> > code applies.
> >
> > But gcc certainly does apply some such optimizations, if not specifically
> > assert. e.g. if you dereference a pointer and then test its truth, the
> > test will be optimized away because it's a constant if the dereference
> > didn't crash.
>
> Is it wise to assume that dereferencing a null pointer will crash?
It's irrelevant. The program has undefined behavior after the null
pointer dereference, so a valid implementation may do anything it
wants on any conditional, or any other C construct for that matter.
Rich
More information about the ffmpeg-devel
mailing list