diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
commit | e252b51ccde010cbd2a146485d8045103cd99533 (patch) | |
tree | e060f101cdc32bf5e520de8e5275db9d4236b74c /gcc/tree-parloops.c | |
parent | f10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff) | |
parent | 104c05c5284b7822d770ee51a7d91946c7e56d50 (diff) | |
download | gcc-e252b51ccde010cbd2a146485d8045103cd99533.zip gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2 |
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r-- | gcc/tree-parloops.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index deff2d5..5e64d5e 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -2867,7 +2867,7 @@ create_parallel_loop (class loop *loop, tree loop_fn, tree data, /* Emit GIMPLE_OMP_FOR. */ if (oacc_kernels_p) /* Parallelized OpenACC kernels constructs use gang parallelism. See also - omp-offload.c:execute_oacc_device_lower. */ + omp-offload.c:execute_oacc_loop_designation. */ t = build_omp_clause (loc, OMP_CLAUSE_GANG); else { @@ -3713,7 +3713,7 @@ ref_conflicts_with_region (gimple_stmt_iterator gsi, ao_ref *ref, reduction results in REDUCTION_STORES. */ static bool -oacc_entry_exit_ok_1 (bitmap in_loop_bbs, vec<basic_block> region_bbs, +oacc_entry_exit_ok_1 (bitmap in_loop_bbs, const vec<basic_block> ®ion_bbs, reduction_info_table_type *reduction_list, bitmap reduction_stores) { @@ -3828,7 +3828,8 @@ oacc_entry_exit_ok_1 (bitmap in_loop_bbs, vec<basic_block> region_bbs, if any changes were made. */ static bool -oacc_entry_exit_single_gang (bitmap in_loop_bbs, vec<basic_block> region_bbs, +oacc_entry_exit_single_gang (bitmap in_loop_bbs, + const vec<basic_block> ®ion_bbs, bitmap reduction_stores) { tree gang_pos = NULL_TREE; @@ -3949,7 +3950,7 @@ oacc_entry_exit_ok (class loop *loop, reduction_info_table_type *reduction_list) { basic_block *loop_bbs = get_loop_body_in_dom_order (loop); - vec<basic_block> region_bbs + auto_vec<basic_block> region_bbs = get_all_dominated_blocks (CDI_DOMINATORS, ENTRY_BLOCK_PTR_FOR_FN (cfun)); bitmap in_loop_bbs = BITMAP_ALLOC (NULL); @@ -3972,7 +3973,6 @@ oacc_entry_exit_ok (class loop *loop, } } - region_bbs.release (); free (loop_bbs); BITMAP_FREE (in_loop_bbs); @@ -3990,7 +3990,6 @@ parallelize_loops (bool oacc_kernels_p) { unsigned n_threads; bool changed = false; - class loop *loop; class loop *skip_loop = NULL; class tree_niter_desc niter_desc; struct obstack parloop_obstack; @@ -4021,7 +4020,7 @@ parallelize_loops (bool oacc_kernels_p) calculate_dominance_info (CDI_DOMINATORS); - FOR_EACH_LOOP (loop, 0) + for (auto loop : loops_list (cfun, 0)) { if (loop == skip_loop) { |