diff options
author | Richard Biener <rguenther@suse.de> | 2014-09-08 14:28:51 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-09-08 14:28:51 +0000 |
commit | 33d9078ac5134dce037632da60cde27145193f5a (patch) | |
tree | d829261fc020863ce018b35b3e289c94c57db1bb /gcc/tree-inline.c | |
parent | efe295f2379ac8fe80a29880c0f31dd13dcca03f (diff) | |
download | gcc-33d9078ac5134dce037632da60cde27145193f5a.zip gcc-33d9078ac5134dce037632da60cde27145193f5a.tar.gz gcc-33d9078ac5134dce037632da60cde27145193f5a.tar.bz2 |
re PR ipa/63196 (FAIL: g++.dg/torture/pr57140.C -O3 -fomit-frame-pointer (internal compiler error))
2014-09-08 Richard Biener <rguenther@suse.de>
PR ipa/63196
* tree-inline.c (copy_loops): The source loop header should
always be non-NULL.
(tree_function_versioning): If loops need fixup after removing
unreachable blocks fix them.
* omp-low.c (simd_clone_adjust): Do not add incr block to
loop under construction.
From-SVN: r215016
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index b82a147..ad474a5 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -2376,11 +2376,8 @@ copy_loops (copy_body_data *id, /* Assign the new loop its header and latch and associate those with the new loop. */ - if (src_loop->header != NULL) - { - dest_loop->header = (basic_block)src_loop->header->aux; - dest_loop->header->loop_father = dest_loop; - } + dest_loop->header = (basic_block)src_loop->header->aux; + dest_loop->header->loop_father = dest_loop; if (src_loop->latch != NULL) { dest_loop->latch = (basic_block)src_loop->latch->aux; @@ -5536,6 +5533,11 @@ tree_function_versioning (tree old_decl, tree new_decl, delete_unreachable_blocks_update_callgraph (&id); if (id.dst_node->definition) cgraph_edge::rebuild_references (); + if (loops_state_satisfies_p (LOOPS_NEED_FIXUP)) + { + calculate_dominance_info (CDI_DOMINATORS); + fix_loop_structure (NULL); + } update_ssa (TODO_update_ssa); /* After partial cloning we need to rescale frequencies, so they are |