This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Possible bug in tree-vrp.c:vrp_visit_phi_node
- From: Jeffrey A Law <law at redhat dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 07 Sep 2005 14:18:38 -0600
- Subject: Re: Possible bug in tree-vrp.c:vrp_visit_phi_node
- References: <10509052139.AA02473@vlsi1.ultra.nyu.edu>
- Reply-to: law at redhat dot com
On Mon, 2005-09-05 at 17:39 -0400, Richard Kenner wrote:
> Suppose lhs_vr is [64,64] and vr_result is ~[0,0]. It would seem
> that the code near the end of this function will malfunction.
>
> Shouldn't the test be that both lhs_vr *and* vr_result are VR_RANGE?
>
> This is causing an ACATS failure in c45651a and possibly others.
I don't necessarily see how it would cause an incorrect code
malfunction. I did twiddle this code locally to allow tree-vrp.c
to better track anti-ranges, particularly singleton anti-ranges
such as ~[0,0].
Basically in the cases I was seeing, LHS_VR was a range and
VR_RESULT was a singleton anti-range. We would ultimately create
a result range which looked like [-INF,+INF], which we could
interpret as VARYING.
Are you getting something different?
Jeff