Commit 3c3ecf52 by Alan Hayward Committed by Alan Hayward

re PR debug/71667 (ICE in as_a, at is-a.h:192 w/ -g -O2 -ftree-vectorize)

2016-07-08  Alan Hayward  <alan.hayward@arm.com>

gcc/
	PR tree-optimization/71667
	* tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts

testsuite/
	PR tree-optimization/71667
	* gcc.dg/vect/pr71667.c: New

From-SVN: r238160
parent 03e6ca48
2016-07-08 Alan Hayward <alan.hayward@arm.com>
PR tree-optimization/71667
* tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
2016-07-08 Martin Liska <mliska@suse.cz>
PR middle-end/71606
......
2016-07-08 Alan Hayward <alan.hayward@arm.com>
PR tree-optimization/71667
* gcc.dg/vect/pr71667.c: New
2016-07-08 Martin Liska <mliska@suse.cz>
* gcc.dg/torture/pr71606.c: New test.
......
/* { dg-do compile } */
/* { dg-additional-options "-g" } */
unsigned int mu;
int pt;
void
qf (void)
{
int gy;
long int vz;
for (;;)
{
for (gy = 0; gy < 80; ++gy)
{
vz = mu;
++mu;
pt = (vz != 0) && (pt != 0);
}
while (gy < 81)
while (gy < 83)
{
vz = (vz != 0) ? 0 : mu;
++gy;
}
pt = vz;
++mu;
}
}
......@@ -6354,11 +6354,12 @@ vectorizable_live_operation (gimple *stmt,
: gimple_get_lhs (stmt);
lhs_type = TREE_TYPE (lhs);
/* Find all uses of STMT outside the loop - there should be exactly one. */
/* Find all uses of STMT outside the loop - there should be at least one. */
auto_vec<gimple *, 4> worklist;
FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, lhs)
if (!flow_bb_inside_loop_p (loop, gimple_bb (use_stmt)))
worklist.safe_push (use_stmt);
if (!flow_bb_inside_loop_p (loop, gimple_bb (use_stmt))
&& !is_gimple_debug (use_stmt))
worklist.safe_push (use_stmt);
gcc_assert (worklist.length () >= 1);
bitsize = TYPE_SIZE (TREE_TYPE (vectype));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment