diff options
author | Richard Guenther <rguenther@suse.de> | 2012-06-22 12:29:33 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-06-22 12:29:33 +0000 |
commit | 62e0a1ed43184c59f3c5d0d30b7a573c7574c00f (patch) | |
tree | c3219bcca178f5d132ff02ba16435f89fac9c6c1 /gcc | |
parent | d25df8825432c8589b42f2b12e078c7eb596e947 (diff) | |
download | gcc-62e0a1ed43184c59f3c5d0d30b7a573c7574c00f.zip gcc-62e0a1ed43184c59f3c5d0d30b7a573c7574c00f.tar.gz gcc-62e0a1ed43184c59f3c5d0d30b7a573c7574c00f.tar.bz2 |
[multiple changes]
2012-06-22 Richard Guenther <rguenther@suse.de>
Merge from graphite branch
2011-08-10 Sebastian Pop <sebpop@gmail.com>
* graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
2012-01-13 Tobias Grosser <tobias@grosser.es>
* tree-flow.h (parallelized_function_p): Declare.
* tree-parloops.c (parallelized_function_p): Export.
* graphite.c (graphite_transform_loops): Do not run graphite on
already parallel functions.
libgomp/
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
From-SVN: r188885
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 1 | ||||
-rw-r--r-- | gcc/graphite.c | 5 | ||||
-rw-r--r-- | gcc/tree-flow.h | 3 | ||||
-rw-r--r-- | gcc/tree-parloops.c | 2 |
5 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 550518c..4bbbbd7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2012-06-22 Richard Guenther <rguenther@suse.de> + + Merge from graphite branch + 2011-08-10 Sebastian Pop <sebpop@gmail.com> + + * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak. + + 2012-01-13 Tobias Grosser <tobias@grosser.es> + + * tree-flow.h (parallelized_function_p): Declare. + * tree-parloops.c (parallelized_function_p): Export. + * graphite.c (graphite_transform_loops): Do not run graphite on + already parallel functions. + 2012-06-22 Alan Modra <amodra@gmail.com> * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 555100f..31e5218 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -1991,6 +1991,7 @@ build_scop_drs (scop_p scop) if (VEC_empty (data_reference_p, GBB_DATA_REFS (PBB_BLACK_BOX (pbb)))) { free_gimple_bb (PBB_BLACK_BOX (pbb)); + free_poly_bb (pbb); VEC_ordered_remove (poly_bb_p, SCOP_BBS (scop), i); i--; } diff --git a/gcc/graphite.c b/gcc/graphite.c index b013447..91358c1 100644 --- a/gcc/graphite.c +++ b/gcc/graphite.c @@ -253,6 +253,11 @@ graphite_transform_loops (void) VEC (scop_p, heap) *scops = NULL; htab_t bb_pbb_mapping; + /* If a function is parallel it was most probably already run through graphite + once. No need to run again. */ + if (parallelized_function_p (cfun->decl)) + return; + if (!graphite_initialize ()) return; diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index cefc9c0..40935f2 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -858,6 +858,9 @@ void warn_function_noreturn (tree); /* In tree-ssa-ter.c */ bool stmt_is_replaceable_p (gimple); +/* In tree-parloops.c */ +bool parallelized_function_p (tree); + #include "tree-flow-inline.h" void swap_tree_operands (gimple, tree *, tree *); diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index e95bf4c..86036b4 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -1394,7 +1394,7 @@ static GTY(()) bitmap parallelized_functions; /* Returns true if FN was created by create_loop_fn. */ -static bool +bool parallelized_function_p (tree fn) { if (!parallelized_functions || !DECL_ARTIFICIAL (fn)) |