This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ICE at -O1 and above in both 32-bit and 64-bit modes on x86_64-linux-gnu
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: kugan <kugan dot vivekanandarajah at linaro dot org>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Martin Jambor <mjambor at suse dot cz>, Jan Hubicka <hubicka at ucw dot cz>
- Date: Fri, 23 Sep 2016 09:19:42 +0200
- Subject: Re: ICE at -O1 and above in both 32-bit and 64-bit modes on x86_64-linux-gnu
- Authentication-results: sourceware.org; auth=none
- References: <a07dda88-000a-fef5-c2b7-5d155540b013@linaro.org>
On Fri, Sep 23, 2016 at 12:24 AM, kugan
<kugan.vivekanandarajah@linaro.org> wrote:
> Hi,
> As Richard pointed out in PR77677, TREE_OVERFLOW is not cleared in IPA-VRP.
> There are three places in which we set value_range:
>
>
> 1. When value ranges are obtained from SSA_NAME with get_range_info with
> wide_int_to_tree. In this case we will not have TREE_OVERFLOW set.
>
> 2. When we vrp_meet/vrp_intersect_ranges two ranges. It does int_const_binop
> but AFAIK this does not set TREE_OVERFLOW.
>
> 3. When we create range from constant. This is the problem bit and we need
> to clear TREE_OVERFLOW here.
>
> Attached patch clears the TREE_OVERFLOW in 3rd case. Bootstrap and
> regression testing are ongoing. Is this OK if there is no regression.
Ok. Though it would be nice to drop it at the source (that is, the point we
initialize the IPA-CP lattice and its modifications).
Richard.
> Thanks,
> Kugan
>
>
> gcc/ChangeLog:
>
> 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
>
> PR ipa/77677
> * ipa-cp.c (propagate_vr_accross_jump_function):Drop TREE_OVERFLOW
> from constant while creating value range.
>
> gcc/testsuite/ChangeLog:
>
> 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
>
> PR ipa/77677
> * gcc.dg/torture/pr77677.c: New test.