summaryrefslogtreecommitdiff
path: root/gcc/tree-parloops.c
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-12 14:18:17 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2009-08-12 14:18:17 +0000
commit525c22c498481eed78b279ca708cf4d60509c90c (patch)
tree6b171a09f1f0e1fe21c1ad4c5fc567c8569f70fe /gcc/tree-parloops.c
parentb95fdaae1b09febf9c76d7e68e34ee682bc90da9 (diff)
downloadgcc-525c22c498481eed78b279ca708cf4d60509c90c.tar.gz
Measure time spent in DD analysis and in code gen.
2009-08-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN. * graphite-dependences.c (graphite_legal_transform): Add time to TV_GRAPHITE_DATA_DEPS. (dependency_between_pbbs_p): Same. * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150683 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r--gcc/tree-parloops.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 9acf0ff75f0..9b9ac758dc2 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1801,6 +1801,11 @@ parallelize_loops (void)
{
htab_empty (reduction_list);
+ /* If we use autopar in graphite pass, we use it's marked dependency
+ checking results. */
+ if (flag_loop_parallelize_all && !loop->can_be_parallel)
+ continue;
+
/* FIXME: Only consider innermost loops with just one exit. */
if (loop->inner || !single_dom_exit (loop))
continue;
@@ -1811,19 +1816,22 @@ parallelize_loops (void)
/* FIXME: the check for vector phi nodes could be removed. */
|| loop_has_vector_phi_nodes (loop))
continue;
-
- if (/* Do not bother with loops in cold areas. */
- optimize_loop_nest_for_size_p (loop)
- /* Or loops that roll too little. */
- || expected_loop_iterations (loop) <= n_threads)
+
+ /* FIXME: Bypass this check as graphite doesn't update the
+ count and frequency correctly now. */
+ if (!flag_loop_parallelize_all
+ && (expected_loop_iterations (loop) <= n_threads
+ /* Do not bother with loops in cold areas. */
+ || optimize_loop_nest_for_size_p (loop)))
continue;
+
if (!try_get_loop_niter (loop, &niter_desc))
continue;
if (!try_create_reduction_list (loop, reduction_list))
continue;
- if (!loop_parallel_p (loop))
+ if (!flag_loop_parallelize_all && !loop_parallel_p (loop))
continue;
changed = true;