From fabebe15946074cc06b795fd11e891573edbc113 Mon Sep 17 00:00:00 2001 From: rguenth Date: Mon, 11 Aug 2014 10:55:10 +0000 Subject: [PATCH] 2014-08-11 Richard Biener PR tree-optimization/62070 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge): Remove SSA checking. * gcc.dg/pr62070.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213810 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr62070.c | 19 +++++++++++++++++++ gcc/tree-ssa-loop-manip.c | 11 ----------- 4 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr62070.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index be17bd8..ec017f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-08-11 Richard Biener + + PR tree-optimization/62070 + * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge): + Remove SSA checking. + 2014-08-11 Yury Gribov * asan.c (asan_check_flags): New enum. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fb45cba..1065642 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-08-11 Richard Biener + + PR tree-optimization/62070 + * gcc.dg/pr62070.c: New testcase. + 2014-08-11 Yury Gribov * c-c++-common/asan/inc.c: Update test. diff --git a/gcc/testsuite/gcc.dg/pr62070.c b/gcc/testsuite/gcc.dg/pr62070.c new file mode 100644 index 0000000..f7b0822 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr62070.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fno-tree-vectorize" } */ + +int in[8][4]; +int out[4]; + +void +foo (void) +{ + int sum = 1; + int i, j, k; + for (k = 0; k < 4; k++) + { + for (j = 0; j < 4; j++) + for (i = 0; i < 4; i++) + sum *= in[i + k][j]; + out[k] = sum; + } +} diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 6de2e4e..ac96936 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -761,17 +761,6 @@ gimple_duplicate_loop_to_header_edge (struct loop *loop, edge e, if (!loops_state_satisfies_p (LOOPS_HAVE_PREHEADERS)) return false; -#ifdef ENABLE_CHECKING - /* ??? This forces needless update_ssa calls after processing each - loop instead of just once after processing all loops. We should - instead verify that loop-closed SSA form is up-to-date for LOOP - only (and possibly SSA form). For now just skip verifying if - there are to-be renamed variables. */ - if (!need_ssa_update_p (cfun) - && loops_state_satisfies_p (LOOP_CLOSED_SSA)) - verify_loop_closed_ssa (true); -#endif - first_new_block = last_basic_block_for_fn (cfun); if (!duplicate_loop_to_header_edge (loop, e, ndupl, wont_exit, orig, to_remove, flags)) -- 2.7.4