aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-09-08 14:28:51 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-09-08 14:28:51 +0000
commit33d9078ac5134dce037632da60cde27145193f5a (patch)
treed829261fc020863ce018b35b3e289c94c57db1bb /gcc/tree-inline.c
parentefe295f2379ac8fe80a29880c0f31dd13dcca03f (diff)
downloadgcc-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.c12
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