From: Ira Rosen <IRAR@il.ibm.com>
To: Richard Guenther <richard.guenther@gmail.com>
Cc: gcc-patches@gcc.gnu.org, Ryan Mansfield <rmansfield@qnx.com>
Subject: Re: Fix crash in vect_is_slp_reduction
Date: Fri, 20 May 2011 16:51:00 -0000 [thread overview]
Message-ID: <OFA36EAB66.8EDE7242-ONC2257896.00582632-C2257896.00593E57@il.ibm.com> (raw)
In-Reply-To: <BANLkTi=z6dpkz7ZmvJ+QZnv_hnW1W4+Vng@mail.gmail.com>
gcc-patches-owner@gcc.gnu.org wrote on 20/05/2011 05:17:47 PM:
>
> On Fri, May 20, 2011 at 4:06 PM, Ryan Mansfield <rmansfield@qnx.com>
wrote:
> > There is a crash in vect_is_slp_reduction where use_stmt doesn't get
> > initialized in the FOR_EACH_IMM_USE_FAST loop.
> >
> > 1718 FOR_EACH_IMM_USE_FAST (use_p, imm_iter, lhs)
> > (gdb) call debug_tree(lhs)
> > <ssa_name 0x7ffff6e3a5a0
> > type <integer_type 0x7ffff7f8c7e0 int32_t sizes-gimplified public SI
> > size <integer_cst 0x7ffff7ec47e0 constant 32>
> > unit size <integer_cst 0x7ffff7ec4580 constant 4>
> > align 32 symtab 0 alias set -1 canonical type 0x7ffff7ecb498
> > precision 32 min <integer_cst 0x7ffff7ec4780 -2147483648> max
<integer_cst
> > 0x7ffff7ec47a0 2147483647> context <translation_unit_decl
0x7ffff7f98508
> > D.1314>
> > pointer_to_this <pointer_type 0x7ffff7f9f930>>
> > var <var_decl 0x7ffff6e1ce60 g_29_lsm.18>def_stmt g_29_lsm.18_137 =
PHI
> > <g_29_lsm.18_87(15), D.2113_96(18)>
> >
> > version 137>
> > (gdb) n
> > 1742 if (found)
> > (gdb)
> > 1746 if (gimple_code (use_stmt) == GIMPLE_PHI)
> > (gdb)
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x0000000000980f22 in gimple_code (g=0x0) at ../../gcc/gimple.h:1098
> > 1098 return g->gsbase.code;
> >
> > Is the following sufficient?
>
> No, we shouldn't arrive with a NULL use_stmt here.
I think a proper fix will be to fail if there are no uses.
I'll prepare a patch on Sunday.
Ira
Index: tree-vect-loop.c
===================================================================
--- tree-vect-loop.c (revision 173856)
+++ tree-vect-loop.c (working copy)
@@ -1704,7 +1704,7 @@ vect_is_slp_reduction (loop_vec_info loop_info, gi
tree lhs;
imm_use_iterator imm_iter;
use_operand_p use_p;
- int nloop_uses, size = 0;
+ int nloop_uses, size = 0, nuses;
bool found = false;
if (loop != vect_loop)
@@ -1715,9 +1715,11 @@ vect_is_slp_reduction (loop_vec_info loop_info, gi
while (1)
{
nloop_uses = 0;
+ nuses = 0;
FOR_EACH_IMM_USE_FAST (use_p, imm_iter, lhs)
{
use_stmt = USE_STMT (use_p);
+ nuses++;
if (is_gimple_debug (use_stmt))
continue;
@@ -1739,6 +1741,10 @@ vect_is_slp_reduction (loop_vec_info loop_info, gi
return false;
}
+ /* The statement has no uses. */
+ if (nuses == 0)
+ return false;
+
if (found)
break;
>
> Richard.
>
> > Index: tree-vect-loop.c
> > ===================================================================
> > --- tree-vect-loop.c (revision 173945)
> > +++ tree-vect-loop.c (working copy)
> > @@ -1743,7 +1743,7 @@
> > break;
> >
> > /* This is a loop exit phi, and we haven't reached the reduction
phi.
> > */
> > - if (gimple_code (use_stmt) == GIMPLE_PHI)
> > + if (!use_stmt || gimple_code (use_stmt) == GIMPLE_PHI)
> > return false;
> >
> > if (!is_gimple_assign (use_stmt)
> >
> > Regards,
> >
> > Ryan Mansfield
> >
next prev parent reply other threads:[~2011-05-20 16:15 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-20 14:54 Ryan Mansfield
2011-05-20 15:11 ` Richard Guenther
2011-05-20 16:51 ` Ira Rosen [this message]
2011-05-22 15:39 ` [patch] Fix PR 49087 (was Re: Fix crash in vect_is_slp_reduction) Ira Rosen
2011-05-20 19:22 ` Fix crash in vect_is_slp_reduction Ryan Mansfield
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=OFA36EAB66.8EDE7242-ONC2257896.00582632-C2257896.00593E57@il.ibm.com \
--to=irar@il.ibm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=richard.guenther@gmail.com \
--cc=rmansfield@qnx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).