On Tue, 11 Aug 2015, Marc Glisse wrote:

> On Wed, 29 Jul 2015, Richard Biener wrote:
> 
> > The following fixes PR67053 by more closely mirror what fold_binary()s
> > STRIP_NOPS does to avoid the C++ FE constexpr code to regress.
> > 
> > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
> > 
> > Yes, I'm thinking on an automated way to more closely mirror
> > STRIP_[SIGN_]NOPS behavior (on toplevel args).
> 
> As far as I can see, you are not currently checking that these conversions are
> NOPs. I didn't test, but I am afraid this may simplify (char)p1==(char)p2 to
> false a bit too quickly.

I'm relying on our restrictions on conversions of pointers to integers
which requires same-precision (and thus always NOP-style) here.

Richard.

> > Richard.
> > 
> > 2015-07-29  Richard Biener  <rguent...@suse.de>
> > 
> >     PR middle-end/67053
> >     * match.pd: Allow both operands to independently have conversion
> >     when simplifying compares of addresses.
> > 
> > Index: gcc/match.pd
> > ===================================================================
> > --- gcc/match.pd    (revision 226345)
> > +++ gcc/match.pd    (working copy)
> > @@ -1814,7 +1814,7 @@ (define_operator_list CBRT BUILT_IN_CBRT
> >    enough to make fold_stmt not regress when not dispatching to fold_binary.
> > */
> > (for cmp (simple_comparison)
> >  (simplify
> > -  (cmp (convert?@2 addr@0) (convert? addr@1))
> > +  (cmp (convert1?@2 addr@0) (convert2? addr@1))
> >   (with
> >    {
> >      HOST_WIDE_INT off0, off1;
> > 

Reply via email to