[PATCH] Avoid unnecessary block copying in path splitting

* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block
	copying.

From-SVN: r231915
This commit is contained in:
Jeff Law 2015-12-22 14:49:12 -07:00 committed by Jeff Law
parent 5634394598
commit 9edb6bb8d3
2 changed files with 9 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2015-12-22 Jeff Law <law@redhat.com>
* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block
copying.
2015-12-22 Jakub Jelinek <jakub@redhat.com>
PR c++/67376

View File

@ -192,9 +192,10 @@ split_paths ()
/* BB is the merge point for an IF-THEN-ELSE we want to transform.
Essentially we want to create two duplicates of BB and append
a duplicate to the THEN and ELSE clauses. This will split the
path leading to the latch. BB will be unreachable and removed. */
Essentially we want to create a duplicate of bb and redirect the
first predecessor of BB to the duplicate (leaving the second
predecessor as is. This will split the path leading to the latch
re-using BB to avoid useless copying. */
if (bb && is_feasible_trace (bb))
{
if (dump_file && (dump_flags & TDF_DETAILS))
@ -202,9 +203,7 @@ split_paths ()
"Duplicating join block %d into predecessor paths\n",
bb->index);
basic_block pred0 = EDGE_PRED (bb, 0)->src;
basic_block pred1 = EDGE_PRED (bb, 1)->src;
transform_duplicate (pred0, bb);
transform_duplicate (pred1, bb);
changed = true;
}
}