mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-15 22:51:38 +08:00
re PR tree-optimization/18270 (internal compiler error: in tree_redirect_edge_and_branch, at tree-cfg.c:4146)
2004-11-03 Andrew MacLeod <amacleod@redhat.com> PR tree-optimization/18270 * tree-outof-ssa.c (analyze_edges_for_bb): If a block has any incoming abnormal edges, simply commit any pending stmts on all incoming edges. From-SVN: r90031
This commit is contained in:
parent
a85a902471
commit
b00e4c238b
@ -1,3 +1,9 @@
|
||||
2004-11-03 Andrew MacLeod <amacleod@redhat.com>
|
||||
|
||||
PR tree-optimization/18270
|
||||
* tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
|
||||
abnormal edges, commit all pending stmts on incoming edges.
|
||||
|
||||
2004-11-03 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
|
||||
|
@ -2024,6 +2024,25 @@ analyze_edges_for_bb (basic_block bb, FILE *debug_file)
|
||||
bool is_label;
|
||||
|
||||
count = 0;
|
||||
|
||||
/* Blocks which contain at least one abnormal edge cannot use
|
||||
make_forwarder_block. Look for these blocks, and commit any PENDING_STMTs
|
||||
found on edges in these block. */
|
||||
have_opportunity = true;
|
||||
FOR_EACH_EDGE (e, ei, bb->preds)
|
||||
if (e->flags & EDGE_ABNORMAL)
|
||||
{
|
||||
have_opportunity = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!have_opportunity)
|
||||
{
|
||||
FOR_EACH_EDGE (e, ei, bb->preds)
|
||||
if (PENDING_STMT (e))
|
||||
bsi_commit_one_edge_insert (e, NULL);
|
||||
return false;
|
||||
}
|
||||
/* Find out how many edges there are with interesting pending stmts on them.
|
||||
Commit the stmts on edges we are not interested in. */
|
||||
FOR_EACH_EDGE (e, ei, bb->preds)
|
||||
|
Loading…
x
Reference in New Issue
Block a user