summaryrefslogtreecommitdiff
path: root/gcc/cfgloopmanip.c
diff options
context:
space:
mode:
authorRazya Ladelsky <razya@il.ibm.com>2009-10-22 14:43:40 +0000
committerRazya Ladelsky <razya@gcc.gnu.org>2009-10-22 14:43:40 +0000
commit487102294c3844ed86ff8689a55b7931608b9170 (patch)
treee5cbd164c16ea25532929cae67f57059ca137cd2 /gcc/cfgloopmanip.c
parent0d4958d02272d61ab5e6e331d171ecc52de82b07 (diff)
downloadgcc-487102294c3844ed86ff8689a55b7931608b9170.tar.gz
cfgloopmanip.c (duplicate_subloops): Export.
2009-10-22 Razya Ladelsky <razya@il.ibm.com> * cfgloopmanip.c (duplicate_subloops): Export. * tree-parloops.c (loop_parallel_p): Dump if loop is innermost. (transform_to_exit_first_loop): Duplicate bbs starting from header up to loop->latch instead of exit->src. Initialize control variable to the correct number of iterations. (gather_scalar_reductions): Do not register double reductions. (parallelize_loops): Dump which loop is tested. Indicate whether the parallelized loop is inner or not. Remove the innermost-loop requirement. * cfgloop.h (duplicate_subloops): Export. * tree-cfg.c (add_phi_args_after_redirect): New function. (gimple_duplicate_sese_tail): Remove the no-subloops constraint. Call duplicate_subloops. Update number of iterations at the exit condition. Don't redirect nexits always to the loop exit. Redirect copied edges from latch to the loop exit. * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan. * testsuite/gcc.dg/autopar/outer-1.c: New testcase. * testsuite/gcc.dg/autopar/outer-2.c: New testcase. * testsuite/gcc.dg/autopar/outer-3.c: New testcase. * testsuite/gcc.dg/autopar/outer-4.c: New testcase. * testsuite/gcc.dg/autopar/outer-5.c: New testcase. * testsuite/gcc.dg/autopar/outer-6.c: New testcase. From-SVN: r153457
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r--gcc/cfgloopmanip.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index a357a2fd77a..6f24415a72d 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3. If not see
#include "output.h"
#include "tree-flow.h"
-static void duplicate_subloops (struct loop *, struct loop *);
static void copy_loops_to (struct loop **, int,
struct loop *);
static void loop_redirect_edge (edge, basic_block);
@@ -886,7 +885,7 @@ duplicate_loop (struct loop *loop, struct loop *target)
/* Copies structure of subloops of LOOP into TARGET loop, placing
newly created loops into loop tree. */
-static void
+void
duplicate_subloops (struct loop *loop, struct loop *target)
{
struct loop *aloop, *cloop;