This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gomp4, committed] Remove gimple_stmt_omp_data_i_init_p


Hi,

this patch:
- removes a superfluous test on gimple_stmt_omp_data_i_init_p in
  tree-parloops.c
- removes unused functions gimple_stmt_omp_data_i_init_p and
  get_omp_data_i.

Committed to gomp-4_0-branch.

Thanks,
- Tom
Remove gimple_stmt_omp_data_i_init_p

2015-11-05  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (gimple_stmt_omp_data_i_init_p, get_omp_data_i): Remove.
	* omp-low.h: Same.
	* tree-parloops.c (oacc_entry_exit_ok_1): Remove test on
	gimple_stmt_omp_data_i_init_p.
---
 gcc/omp-low.c       | 48 ------------------------------------------------
 gcc/omp-low.h       |  2 --
 gcc/tree-parloops.c |  2 --
 3 files changed, 52 deletions(-)

diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 643d017..b3731e3 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -18681,54 +18681,6 @@ oacc_kernels_region_entry_p (basic_block bb, gomp_target **directive)
   return res;
 }
 
-/* Return true if STMT is copy assignment .omp_data_i = &.omp_data_arr.  */
-
-bool
-gimple_stmt_omp_data_i_init_p (gimple *stmt)
-{
-  /* Extract obj from stmt 'a = &obj.  */
-  if (!gimple_assign_cast_p (stmt)
-      && !gimple_assign_single_p (stmt))
-    return false;
-  tree rhs = gimple_assign_rhs1 (stmt);
-  if (TREE_CODE (rhs) != ADDR_EXPR)
-    return false;
-  tree obj = TREE_OPERAND (rhs, 0);
-
-  /* Check that the last statement in the preceding bb is an oacc kernels
-     stmt.  */
-  basic_block bb = gimple_bb (stmt);
-  gomp_target *kernels;
-  if (!oacc_kernels_region_entry_p (bb, &kernels))
-    return false;
-
-  /* Get omp_data_arr from the oacc kernels stmt.  */
-  tree data_arg = gimple_omp_target_data_arg (kernels);
-  tree omp_data_arr = TREE_VEC_ELT (data_arg, 0);
-
-  /* If obj is omp_data_arr, we've found the .omp_data_i init statement.  */
-  return operand_equal_p (obj, omp_data_arr, 0);
-}
-
-
-/* Return omp_data_i corresponding to the assignment
-   .omp_data_i = &.omp_data_arr in oacc kernels region entry REGION_ENTRY.  */
-
-tree
-get_omp_data_i (basic_block region_entry)
-{
-  if (!single_succ_p (region_entry))
-    return NULL_TREE;
-  basic_block bb = single_succ (region_entry);
-  gimple_stmt_iterator gsi = gsi_start_bb (bb);
-  if (gsi_end_p (gsi))
-    return NULL_TREE;
-  gimple *stmt = gsi_stmt (gsi);
-  if (!gimple_stmt_omp_data_i_init_p (stmt))
-    return NULL_TREE;
-  return gimple_assign_lhs (stmt);
-}
-
 namespace {
 
 const pass_data pass_data_late_lower_omp =
diff --git a/gcc/omp-low.h b/gcc/omp-low.h
index 673b470..d1755a8 100644
--- a/gcc/omp-low.h
+++ b/gcc/omp-low.h
@@ -30,8 +30,6 @@ extern tree omp_reduction_init (tree, tree);
 extern bool make_gimple_omp_edges (basic_block, struct omp_region **, int *);
 extern void omp_finish_file (void);
 extern tree omp_member_access_dummy_var (tree);
-extern bool gimple_stmt_omp_data_i_init_p (gimple *);
-extern tree get_omp_data_i (basic_block);
 extern bool oacc_kernels_region_entry_p (basic_block, gomp_target **);
 extern basic_block get_oacc_kernels_region_exit (basic_block);
 extern basic_block loop_get_oacc_kernels_region_entry (struct loop *);
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index c038dfe..7e888d8 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -2956,8 +2956,6 @@ oacc_entry_exit_ok_1 (bitmap in_loop_bbs, vec<basic_block> region_bbs,
 	    }
 	  else if (gimple_code (stmt) == GIMPLE_OMP_RETURN)
 	    continue;
-	  else if (gimple_stmt_omp_data_i_init_p (stmt))
-	    continue;
 	  else if (!gimple_has_side_effects (stmt)
 		   && !gimple_could_trap_p (stmt)
 		   && !stmt_could_throw_p (stmt)
-- 
1.9.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]