Commit eabec4d3 by Jeff Law Committed by Jeff Law

re PR rtl-optimization/87468 (ice "wrong amount of branch edges after conditional jump in bb")

	PR rtl-optimization/87468
	* tree-ssa-threadupdate.c (create_block_for_threading): Clear
	EDGE_IGNORE on all outgoing edges of the duplicate block.

From-SVN: r266426
parent bdcd6cae
2018-11-23 Jeff Law <law@redhat.com>
PR rtl-optimization/87468
* tree-ssa-threadupdate.c (create_block_for_threading): Clear
EDGE_IGNORE on all outgoing edges of the duplicate block.
2018-11-23 Vladimir Makarov <vmakarov@redhat.com> 2018-11-23 Vladimir Makarov <vmakarov@redhat.com>
PR bootstrap/88157 PR bootstrap/88157
2018-11-23 Jeff Law <law@redhat.com>
PR rtl-optimization/84768
* gcc.c-torture/compile/pr84768.c: New test.
2018-11-23 Vladimir Makarov <vmakarov@redhat.com> 2018-11-23 Vladimir Makarov <vmakarov@redhat.com>
* gcc.target/powerpc/pr70669.c: Use unary minus instead of * gcc.target/powerpc/pr70669.c: Use unary minus instead of
......
a;
b() {
int c = 1;
for (; c <= 3;) {
int d = e() && !0;
switch (c)
case 1:
if (d)
case 2:
case 3:
f();
if (a)
c++;
}
}
...@@ -336,7 +336,17 @@ create_block_for_threading (basic_block bb, ...@@ -336,7 +336,17 @@ create_block_for_threading (basic_block bb,
rd->dup_blocks[count] = duplicate_block (bb, NULL, NULL); rd->dup_blocks[count] = duplicate_block (bb, NULL, NULL);
FOR_EACH_EDGE (e, ei, rd->dup_blocks[count]->succs) FOR_EACH_EDGE (e, ei, rd->dup_blocks[count]->succs)
e->aux = NULL; {
e->aux = NULL;
/* If we duplicate a block with an outgoing edge marked as
EDGE_IGNORE, we must clear EDGE_IGNORE so that it doesn't
leak out of the current pass.
It would be better to simplify switch statements and remove
the edges before we get here, but the sequencing is nontrivial. */
e->flags &= ~EDGE_IGNORE;
}
/* Zero out the profile, since the block is unreachable for now. */ /* Zero out the profile, since the block is unreachable for now. */
rd->dup_blocks[count]->count = profile_count::uninitialized (); rd->dup_blocks[count]->count = profile_count::uninitialized ();
......
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