[SH] PR 54685 - unsigned int comparison with 0x7FFFFFFF
Oleg Endo
oleg.endo@t-online.de
Mon Oct 8 01:53:00 GMT 2012
On Mon, 2012-10-08 at 09:45 +0900, Kaz Kojima wrote:
> Oleg Endo <oleg.endo@t-online.de> wrote:
> > The attached patch improves comparisons such as
> > 'unsigned int <= 0x7FFFFFFF' on SH.
> > As mentioned in the PR, for some reason, those comparisons do not go
> > through the cstore expander. As a consequence the comparison doesn't
> > get the chance to be canonicalized by the target code and ends up as
> > '(~x) >> 31'.
> > I've not investigated this further and just fixed the symptoms on SH. I
> > don't know whether it's also an issue on other targets.
> >
> > Tested on rev 192142 with
> > make -k check RUNTESTFLAGS="--target_board=sh-sim
> > \{-m2/-ml,-m2/-mb,-m2a/-mb,-m4/-ml,-m4/-mb,-m4a/-ml,-m4a/-mb}"
> >
> > and no new failures.
> > OK?
>
> I've run CSiBE with and without the patch for sh4-unknown-linux-gnu
> at -O2. Only one difference in the resulted sizes: jpeg-6b/jcphuff
> increases 5336 bytes to 5340 bytes with the patch. Could you look
> into it?
Yep, that's actually the only place in the CSiBE set where this case
hits. The function in question is encode_mcu_AC_refine. The increase
seems to be due to different register allocation and different spill
code :T
I've attached the asm diff.
Cheers,
Oleg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jcphuff.diff
Type: text/x-patch
Size: 3069 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20121008/37c097d4/attachment.bin>
More information about the Gcc-patches
mailing list