This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, middle-end, i386]: reciprocal rsqrt pass + full recip x86 backend support


On 6/16/07, Uros Bizjak <ubizjak@gmail.com> wrote:
Uros Bizjak wrote:

> This patch implements reciprocal sqrt pass. At the a/func(b) ->
> a*rfunc(b) was put in existing recip pass, where new rsqrt pass
> processes only sqrt(a/b)->rsqrt(b/a) optimization (as discussed, due
> to interference with a/b RTL reciprocal expansion, where we can't
> perform this optimization anymore). sqrt(a)-> a*rsqrt(a) is performed
> during RTL expansion time due to CSE of a*rsqrtss(a) during NR step.

I went ahead and committed this patch to SVN (after re-testing it on
x86_64-pc-linux-gnu), due to following reasons:

This patch causes a bootstrap failure on every target except for x86_64/i686.


../../gcc/config/mips/mips.c:1259: warning: initialization from
incompatible pointer type
rs6000.c:1118: error: initialization from incompatible pointer type

etc.
It should be noted that the trunk was frozen for regression only fixes
also (except for a couple of things, and IIRC this was not one of
them).

#define TARGET_BUILTIN_RECIPROCAL hook_tree_tree_bool_null
target.h:  tree (* builtin_reciprocal) (unsigned, bool);

These two pointers will never be compatible.

Thanks,
Andrew Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]