On 1/10/19 6:44 AM, Richard Biener wrote:
> 
> I am testing the following patch teaching VRP predicate analysis about
> 
>   __x.5_4 = (long unsigned int) "hello";
>   __y.6_5 = (long unsigned int) _3;
>   if (__x.5_4 != __y.6_5)
> 
> so that we know sth about the relation of the converted entities.
> This appearantly (didn't back out other stuff) helps PR88775
> after Jakubs changes to libstdc++ (before his changes a related
> VN patch helped which meanwhile shows miscompiling
> 20_util/function_objects/comparisons_pointer.cc...).
> 
> I now see DOM performing all required optimization thanks to it
> using the EVRP machinery.
> 
> Bootstrap & regtest running on x86_64-unknown-linux-gnu.
> 
> OK for trunk?
> 
> Any idea how we can have a reliable testcase for the std::string
> optimization?
> 
> Thanks,
> Richard.
> 
> From 78a345845651565daac295f8dfbfc64cf5e8ccf3 Mon Sep 17 00:00:00 2001
> From: Richard Guenther <rguent...@suse.de>
> Date: Thu, 10 Jan 2019 14:34:22 +0100
> Subject: [PATCH] fix-pr88775-2
> 
> 2019-01-10  Richard Biener  <rguent...@suse.de>
> 
>       PR tree-optimization/88775
>       * tree-vrp.c (register_edge_assert_for_2): Register asserts
>       from (T) a CMP (T) b.
Seems reasonable to me.  It looks like a slight generalization of code
I've seen elsewhere, but can't find at the moment.

Jeff

Reply via email to