public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
@ 2021-10-18  8:54 Martin Liška
  2021-10-18 10:05 ` Richard Biener
  0 siblings, 1 reply; 10+ messages in thread
From: Martin Liška @ 2021-10-18  8:54 UTC (permalink / raw)
  To: gcc-patches

The macros correspond 1:1 to an option flags and make it harder
to find all usages of the flags.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/c-family/ChangeLog:

	* c-gimplify.c (genericize_c_loop): Use option directly.

gcc/c/ChangeLog:

	* c-parser.c (add_debug_begin_stmt): Use option directly.

gcc/ChangeLog:

	* cfgexpand.c (pass_expand::execute): Use option directly.
	* function.c (allocate_struct_function): Likewise.
	* gimple-low.c (lower_function_body): Likewise.
	(lower_stmt): Likewise.
	* gimple-ssa-backprop.c (backprop::prepare_change): Likewise.
	* ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise.
	* ipa-split.c (split_function): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* sese.c (sese_insert_phis_for_liveouts): Likewise.
	* ssa-iterators.h (num_imm_uses): Likewise.
	* tree-cfg.c (make_blocks): Likewise.
	(gimple_merge_blocks): Likewise.
	* tree-inline.c (tree_function_versioning): Likewise.
	* tree-loop-distribution.c (generate_loops_for_partition): Likewise.
	* tree-sra.c (analyze_access_subtree): Likewise.
	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
	* tree-ssa-phiopt.c (spaceship_replacement): Likewise.
	* tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
	* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise.
	* tree-ssa.c (gimple_replace_ssa_lhs): Likewise.
	(target_for_debug_bind): Likewise.
	(insert_debug_temp_for_var_def): Likewise.
	(insert_debug_temps_for_defs): Likewise.
	(reset_debug_uses): Likewise.
	* tree-ssanames.c (release_ssa_name_fn): Likewise.
	* tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise.
	(adjust_debug_stmts): Likewise.
	(adjust_phi_and_debug_stmts): Likewise.
	(vect_do_peeling): Likewise.
	* tree-vect-loop.c (vect_transform_loop_stmt): Likewise.
	(vect_transform_loop): Likewise.
	* tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove
	(MAY_HAVE_DEBUG_BIND_STMTS): Remove.
	(MAY_HAVE_DEBUG_STMTS): Use options directly.

gcc/cp/ChangeLog:

	* parser.c (add_debug_begin_stmt): Use option directly.
---
  gcc/c-family/c-gimplify.c    |  4 ++--
  gcc/c/c-parser.c             |  2 +-
  gcc/cfgexpand.c              |  2 +-
  gcc/cp/parser.c              |  2 +-
  gcc/function.c               |  2 +-
  gcc/gimple-low.c             |  4 ++--
  gcc/gimple-ssa-backprop.c    |  2 +-
  gcc/ipa-param-manipulation.c |  2 +-
  gcc/ipa-split.c              |  6 +++---
  gcc/lto-streamer-in.c        |  4 ++--
  gcc/sese.c                   |  2 +-
  gcc/ssa-iterators.h          |  2 +-
  gcc/tree-cfg.c               |  4 ++--
  gcc/tree-inline.c            |  2 +-
  gcc/tree-loop-distribution.c |  2 +-
  gcc/tree-sra.c               |  2 +-
  gcc/tree-ssa-dce.c           |  2 +-
  gcc/tree-ssa-loop-ivopts.c   |  2 +-
  gcc/tree-ssa-phiopt.c        |  2 +-
  gcc/tree-ssa-reassoc.c       |  2 +-
  gcc/tree-ssa-tail-merge.c    |  2 +-
  gcc/tree-ssa-threadedge.c    |  2 +-
  gcc/tree-ssa.c               | 10 +++++-----
  gcc/tree-ssanames.c          |  2 +-
  gcc/tree-vect-loop-manip.c   |  8 ++++----
  gcc/tree-vect-loop.c         |  4 ++--
  gcc/tree.h                   |  7 +------
  27 files changed, 41 insertions(+), 46 deletions(-)

diff --git a/gcc/c-family/c-gimplify.c b/gcc/c-family/c-gimplify.c
index 0d38b706f4c..d9cf051a680 100644
--- a/gcc/c-family/c-gimplify.c
+++ b/gcc/c-family/c-gimplify.c
@@ -295,7 +295,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
    finish_bc_block (&stmt_list, bc_continue, clab);
    if (incr)
      {
-      if (MAY_HAVE_DEBUG_MARKER_STMTS && incr_locus != UNKNOWN_LOCATION)
+      if (debug_nonbind_markers_p && incr_locus != UNKNOWN_LOCATION)
  	{
  	  tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
  	  SET_EXPR_LOCATION (d, expr_loc_or_loc (incr, start_locus));
@@ -305,7 +305,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
      }
    append_to_statement_list (entry, &stmt_list);
  
-  if (MAY_HAVE_DEBUG_MARKER_STMTS && cond_locus != UNKNOWN_LOCATION)
+  if (debug_nonbind_markers_p && cond_locus != UNKNOWN_LOCATION)
      {
        tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
        SET_EXPR_LOCATION (d, cond_locus);
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 80dd61d599e..1ba2b2f8342 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -1791,7 +1791,7 @@ static void
  add_debug_begin_stmt (location_t loc)
  {
    /* Don't add DEBUG_BEGIN_STMTs outside of functions, see PR84721.  */
-  if (!MAY_HAVE_DEBUG_MARKER_STMTS || !building_stmt_list_p ())
+  if (!debug_nonbind_markers_p || !building_stmt_list_p ())
      return;
  
    tree stmt = build0 (DEBUG_BEGIN_STMT, void_type_node);
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 03260b019e5..ad7ca18fc03 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -6588,7 +6588,7 @@ pass_expand::execute (function *fun)
    timevar_pop (TV_OUT_OF_SSA);
    SA.partition_to_pseudo = XCNEWVEC (rtx, SA.map->num_partitions);
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS && flag_tree_ter)
+  if (flag_var_tracking_assignments && flag_tree_ter)
      {
        gimple_stmt_iterator gsi;
        FOR_EACH_BB_FN (bb, cfun)
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 865778e4d30..0deb3f53d5e 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -11681,7 +11681,7 @@ cp_parser_lambda_body (cp_parser* parser, tree lambda_expr)
  static void
  add_debug_begin_stmt (location_t loc)
  {
-  if (!MAY_HAVE_DEBUG_MARKER_STMTS)
+  if (!debug_nonbind_markers_p)
      return;
    if (DECL_DECLARED_CONCEPT_P (current_function_decl))
      /* A concept is never expanded normally.  */
diff --git a/gcc/function.c b/gcc/function.c
index af3d57b32a3..c810a6001ce 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4872,7 +4872,7 @@ allocate_struct_function (tree fndecl, bool abstract_p)
       disabled.  The markers make little sense without the variable
       binding annotations among them.  */
    cfun->debug_nonbind_markers = lang_hooks.emits_begin_stmt
-    && MAY_HAVE_DEBUG_MARKER_STMTS;
+    && debug_nonbind_markers_p;
  
    cfun->x_range_query = &global_ranges;
  }
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 7e39c22df44..7d9b3df2ffb 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -114,7 +114,7 @@ lower_function_body (void)
    /* If we had begin stmt markers from e.g. PCH, but this compilation
       doesn't want them, lower_stmt will have cleaned them up; we can
       now clear the flag that indicates we had them.  */
-  if (!MAY_HAVE_DEBUG_MARKER_STMTS && cfun->debug_nonbind_markers)
+  if (!debug_nonbind_markers_p && cfun->debug_nonbind_markers)
      {
        /* This counter needs not be exact, but before lowering it will
  	 most certainly be.  */
@@ -316,7 +316,7 @@ lower_stmt (gimple_stmt_iterator *gsi, struct lower_data *data)
        /* Propagate fallthruness.  */
        /* If the function (e.g. from PCH) had debug stmts, but they're
  	 disabled for this compilation, remove them.  */
-      if (!MAY_HAVE_DEBUG_MARKER_STMTS)
+      if (!debug_nonbind_markers_p)
  	gsi_remove (gsi, true);
        else
  	gsi_next (gsi);
diff --git a/gcc/gimple-ssa-backprop.c b/gcc/gimple-ssa-backprop.c
index 4b62bb92a21..3705c106fcc 100644
--- a/gcc/gimple-ssa-backprop.c
+++ b/gcc/gimple-ssa-backprop.c
@@ -737,7 +737,7 @@ strip_sign_op (tree rhs)
  void
  backprop::prepare_change (tree var)
  {
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      insert_debug_temp_for_var_def (NULL, var);
    reset_flow_sensitive_info (var);
  }
diff --git a/gcc/ipa-param-manipulation.c b/gcc/ipa-param-manipulation.c
index 26b02d7aa95..192ac8376dc 100644
--- a/gcc/ipa-param-manipulation.c
+++ b/gcc/ipa-param-manipulation.c
@@ -773,7 +773,7 @@ ipa_param_adjustments::modify_call (cgraph_edge *cs,
       vector to say for debug info that if parameter parm had been passed,
       it would have value parm_Y(D).  */
    tree old_decl = gimple_call_fndecl (stmt);
-  if (MAY_HAVE_DEBUG_BIND_STMTS && old_decl && callee_decl)
+  if (flag_var_tracking_assignments && old_decl && callee_decl)
      {
        vec<tree, va_gc> **debug_args = NULL;
        unsigned i = 0;
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index c68577d04a9..65377678557 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -1465,7 +1465,7 @@ split_function (basic_block return_bb, class split_point *split_point,
      {
        vec<tree, va_gc> **debug_args = NULL;
        unsigned i = 0, len = 0;
-      if (MAY_HAVE_DEBUG_BIND_STMTS)
+      if (flag_var_tracking_assignments)
  	{
  	  debug_args = decl_debug_args_lookup (node->decl);
  	  if (debug_args)
@@ -1479,11 +1479,11 @@ split_function (basic_block return_bb, class split_point *split_point,
  	    gimple *def_temp;
  
  	    /* This needs to be done even without
-	       MAY_HAVE_DEBUG_BIND_STMTS, otherwise if it didn't exist
+	       flag_var_tracking_assignments, otherwise if it didn't exist
  	       before, we'd end up with different SSA_NAME_VERSIONs
  	       between -g and -g0.  */
  	    arg = get_or_create_ssa_default_def (cfun, parm);
-	    if (!MAY_HAVE_DEBUG_BIND_STMTS || debug_args == NULL)
+	    if (!flag_var_tracking_assignments || debug_args == NULL)
  	      continue;
  
  	    while (i < len && (**debug_args)[i] != DECL_ORIGIN (parm))
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index eb8a7dc57b0..4165892d466 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1454,8 +1454,8 @@ input_function (tree fn_decl, class data_in *data_in,
  	    {
  	      if (is_gimple_debug (stmt)
  		  && (gimple_debug_nonbind_marker_p (stmt)
-		      ? !MAY_HAVE_DEBUG_MARKER_STMTS
-		      : !MAY_HAVE_DEBUG_BIND_STMTS))
+		      ? !debug_nonbind_markers_p
+		      : !flag_var_tracking_assignments))
  		remove = true;
  	      /* In case the linemap overflows locations can be dropped
  		 to zero.  Thus do not keep nonsensical inline entry markers
diff --git a/gcc/sese.c b/gcc/sese.c
index ca88f9bbfdf..5ddbb0b9532 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -205,7 +205,7 @@ void
  sese_insert_phis_for_liveouts (sese_info_p region, basic_block bb,
  			       edge false_e, edge true_e)
  {
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      sese_reset_debug_liveouts (region);
  
    unsigned i;
diff --git a/gcc/ssa-iterators.h b/gcc/ssa-iterators.h
index f70b0a42368..3e26ce051bf 100644
--- a/gcc/ssa-iterators.h
+++ b/gcc/ssa-iterators.h
@@ -456,7 +456,7 @@ num_imm_uses (const_tree var)
    const ssa_use_operand_t *ptr;
    unsigned int num = 0;
  
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      {
        for (ptr = start->next; ptr != start; ptr = ptr->next)
  	if (USE_STMT (ptr))
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 4b4b0b52d9a..13aa4fafb3c 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -613,7 +613,7 @@ make_blocks (gimple_seq seq)
       latest (earliest we find) label, and moving debug stmts that are
       not separated from it by nondebug nonlabel stmts after the
       label.  */
-  if (MAY_HAVE_DEBUG_MARKER_STMTS)
+  if (debug_nonbind_markers_p)
      {
        gimple_stmt_iterator label = gsi_none ();
  
@@ -2138,7 +2138,7 @@ gimple_merge_blocks (basic_block a, basic_block b)
  		gsi_insert_before (&dest_gsi, stmt, GSI_NEW_STMT);
  	    }
  	  /* Other user labels keep around in a form of a debug stmt.  */
-	  else if (!DECL_ARTIFICIAL (label) && MAY_HAVE_DEBUG_BIND_STMTS)
+	  else if (!DECL_ARTIFICIAL (label) && flag_var_tracking_assignments)
  	    {
  	      gimple *dbg = gimple_build_debug_bind (label,
  						     integer_zero_node,
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index b2c58ac4c3b..9e6b9aa1a55 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -6418,7 +6418,7 @@ tree_function_versioning (tree old_decl, tree new_decl,
  	}
      }
  
-  if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS)
+  if (param_body_adjs && flag_var_tracking_assignments)
      {
        vec<tree, va_gc> **debug_args = NULL;
        unsigned int len = 0;
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 583c01a42d8..1f2d0329b5e 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1000,7 +1000,7 @@ generate_loops_for_partition (class loop *loop, partition *partition,
    /* Remove stmts not in the PARTITION bitmap.  */
    bbs = get_loop_body_in_dom_order (loop);
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      for (i = 0; i < loop->num_nodes; i++)
        {
  	basic_block bb = bbs[i];
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 9b786e29e4e..f556662ac0c 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2588,7 +2588,7 @@ analyze_access_subtree (struct access *root, struct access *parent,
  	  gcc_checking_assert (!root->grp_scalar_read
  			       && !root->grp_assignment_read);
  	  sth_created = true;
-	  if (MAY_HAVE_DEBUG_BIND_STMTS)
+	  if (flag_var_tracking_assignments)
  	    {
  	      root->grp_to_be_debug_replaced = 1;
  	      root->replacement_decl = create_access_replacement (root);
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index c4907af923c..6d4b8fb5411 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -1142,7 +1142,7 @@ remove_dead_stmt (gimple_stmt_iterator *i, basic_block bb,
  
    /* If this is a store into a variable that is being optimized away,
       add a debug bind stmt if possible.  */
-  if (MAY_HAVE_DEBUG_BIND_STMTS
+  if (flag_var_tracking_assignments
        && gimple_assign_single_p (stmt)
        && is_gimple_val (gimple_assign_rhs1 (stmt)))
      {
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 4a498abe3b0..71c1ff74eb0 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -7670,7 +7670,7 @@ remove_unused_ivs (struct ivopts_data *data, bitmap toremove)
  
  	  tree def = info->iv->ssa_name;
  
-	  if (MAY_HAVE_DEBUG_BIND_STMTS && SSA_NAME_DEF_STMT (def))
+	  if (flag_var_tracking_assignments && SSA_NAME_DEF_STMT (def))
  	    {
  	      imm_use_iterator imm_iter;
  	      use_operand_p use_p;
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 0e339c46afa..969ffdde86e 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -2389,7 +2389,7 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
      }
    update_stmt (use_stmt);
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      {
        use_operand_p use_p;
        imm_use_iterator iter;
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index db9fb4e1cac..436545024ea 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -233,7 +233,7 @@ reassoc_remove_stmt (gimple_stmt_iterator *gsi)
  {
    gimple *stmt = gsi_stmt (*gsi);
  
-  if (!MAY_HAVE_DEBUG_BIND_STMTS || gimple_code (stmt) == GIMPLE_PHI)
+  if (!flag_var_tracking_assignments || gimple_code (stmt) == GIMPLE_PHI)
      return gsi_remove (gsi, true);
  
    gimple_stmt_iterator prev = *gsi;
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index 48f94217d16..5487679e01d 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -1796,7 +1796,7 @@ tail_merge_optimize (unsigned int todo)
  
    if (nr_bbs_removed_total > 0)
      {
-      if (MAY_HAVE_DEBUG_BIND_STMTS)
+      if (flag_var_tracking_assignments)
  	{
  	  calculate_dominance_info (CDI_DOMINATORS);
  	  update_debug_stmts ();
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index a63a9764ff8..2365d189dac 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -646,7 +646,7 @@ jump_threader::simplify_control_stmt_condition_1
  void
  propagate_threaded_block_debug_into (basic_block dest, basic_block src)
  {
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return;
  
    if (!single_pred_p (dest))
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index fde13defebf..67360910a71 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -220,7 +220,7 @@ flush_pending_stmts (edge e)
  void
  gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
  {
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      {
        tree lhs = gimple_get_lhs (stmt);
  
@@ -242,7 +242,7 @@ gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
  tree
  target_for_debug_bind (tree var)
  {
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return NULL_TREE;
  
    if (TREE_CODE (var) == SSA_NAME)
@@ -307,7 +307,7 @@ insert_debug_temp_for_var_def (gimple_stmt_iterator *gsi, tree var)
    int usecount = 0;
    tree value = NULL;
  
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return;
  
    /* If this name has already been registered for replacement, do nothing
@@ -500,7 +500,7 @@ insert_debug_temps_for_defs (gimple_stmt_iterator *gsi)
    ssa_op_iter op_iter;
    def_operand_p def_p;
  
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return;
  
    stmt = gsi_stmt (*gsi);
@@ -526,7 +526,7 @@ reset_debug_uses (gimple *stmt)
    imm_use_iterator imm_iter;
    gimple *use_stmt;
  
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return;
  
    FOR_EACH_PHI_OR_STMT_DEF (def_p, stmt, op_iter, SSA_OP_DEF)
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index f427c5a789b..eceb51a08ac 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -560,7 +560,7 @@ release_ssa_name_fn (struct function *fn, tree var)
        int saved_ssa_name_version = SSA_NAME_VERSION (var);
        use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var));
  
-      if (MAY_HAVE_DEBUG_BIND_STMTS)
+      if (flag_var_tracking_assignments)
  	insert_debug_temp_for_var_def (NULL, var);
  
        if (flag_checking)
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 4988c93fdb6..6ac6206edb5 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -201,7 +201,7 @@ adjust_debug_stmts_now (adjust_info *ai)
  static void
  adjust_vec_debug_stmts (void)
  {
-  if (!MAY_HAVE_DEBUG_BIND_STMTS)
+  if (!flag_var_tracking_assignments)
      return;
  
    gcc_assert (adjust_vec.exists ());
@@ -223,7 +223,7 @@ adjust_debug_stmts (tree from, tree to, basic_block bb)
  {
    adjust_info ai;
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS
+  if (flag_var_tracking_assignments
        && TREE_CODE (from) == SSA_NAME
        && ! SSA_NAME_IS_DEFAULT_DEF (from)
        && ! virtual_operand_p (from))
@@ -251,7 +251,7 @@ adjust_phi_and_debug_stmts (gimple *update_phi, edge e, tree new_def)
  
    SET_PHI_ARG_DEF (update_phi, e->dest_idx, new_def);
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      adjust_debug_stmts (orig_def, PHI_RESULT (update_phi),
  			gimple_bb (update_phi));
  }
@@ -2693,7 +2693,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
        vop_to_rename = create_lcssa_for_virtual_phi (orig_loop);
      }
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS)
+  if (flag_var_tracking_assignments)
      {
        gcc_assert (!adjust_vec.exists ());
        adjust_vec.create (32);
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 961c1623f81..615ef6f2314 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -9332,7 +9332,7 @@ vect_transform_loop_stmt (loop_vec_info loop_vinfo, stmt_vec_info stmt_info,
      dump_printf_loc (MSG_NOTE, vect_location,
  		     "------>vectorizing statement: %G", stmt_info->stmt);
  
-  if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
+  if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
      vect_loop_kill_debug_uses (loop, stmt_info);
  
    if (!STMT_VINFO_RELEVANT_P (stmt_info)
@@ -9706,7 +9706,7 @@ vect_transform_loop (loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
  	  if (!stmt_info)
  	    continue;
  
-	  if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
+	  if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
  	    vect_loop_kill_debug_uses (loop, stmt_info);
  
  	  if (!STMT_VINFO_RELEVANT_P (stmt_info)
diff --git a/gcc/tree.h b/gcc/tree.h
index 7542d97ce12..ec9e3a38853 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1174,14 +1174,9 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
  #define VL_EXP_OPERAND_LENGTH(NODE) \
    ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
  
-/* Nonzero if gimple_debug_nonbind_marker_p() may possibly hold.  */
-#define MAY_HAVE_DEBUG_MARKER_STMTS debug_nonbind_markers_p
-/* Nonzero if gimple_debug_bind_p() (and thus
-   gimple_debug_source_bind_p()) may possibly hold.  */
-#define MAY_HAVE_DEBUG_BIND_STMTS flag_var_tracking_assignments
  /* Nonzero if is_gimple_debug() may possibly hold.  */
  #define MAY_HAVE_DEBUG_STMTS					\
-  (MAY_HAVE_DEBUG_MARKER_STMTS || MAY_HAVE_DEBUG_BIND_STMTS)
+  (debug_nonbind_markers_p || flag_var_tracking_assignments)
  
  /* In a LOOP_EXPR node.  */
  #define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
-- 
2.33.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-10-18  8:54 [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS Martin Liška
@ 2021-10-18 10:05 ` Richard Biener
  2021-11-12 14:37   ` Martin Liška
  2021-11-19  8:59   ` Alexandre Oliva
  0 siblings, 2 replies; 10+ messages in thread
From: Richard Biener @ 2021-10-18 10:05 UTC (permalink / raw)
  To: Martin Liška, Alexandre Oliva; +Cc: GCC Patches

On Mon, Oct 18, 2021 at 10:54 AM Martin Liška <mliska@suse.cz> wrote:
>
> The macros correspond 1:1 to an option flags and make it harder
> to find all usages of the flags.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?

Hmm, they were introduced on purpose - since you leave around
MAY_HAVE_DEBUG_STMTS they conceptually make the code
easier to understand.

So I'm not sure if we want this change.  CCed Alex so maybe he
can weight in.

Richard.

> Thanks,
> Martin
>
> gcc/c-family/ChangeLog:
>
>         * c-gimplify.c (genericize_c_loop): Use option directly.
>
> gcc/c/ChangeLog:
>
>         * c-parser.c (add_debug_begin_stmt): Use option directly.
>
> gcc/ChangeLog:
>
>         * cfgexpand.c (pass_expand::execute): Use option directly.
>         * function.c (allocate_struct_function): Likewise.
>         * gimple-low.c (lower_function_body): Likewise.
>         (lower_stmt): Likewise.
>         * gimple-ssa-backprop.c (backprop::prepare_change): Likewise.
>         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise.
>         * ipa-split.c (split_function): Likewise.
>         * lto-streamer-in.c (input_function): Likewise.
>         * sese.c (sese_insert_phis_for_liveouts): Likewise.
>         * ssa-iterators.h (num_imm_uses): Likewise.
>         * tree-cfg.c (make_blocks): Likewise.
>         (gimple_merge_blocks): Likewise.
>         * tree-inline.c (tree_function_versioning): Likewise.
>         * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
>         * tree-sra.c (analyze_access_subtree): Likewise.
>         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
>         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
>         * tree-ssa-phiopt.c (spaceship_replacement): Likewise.
>         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
>         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
>         * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise.
>         * tree-ssa.c (gimple_replace_ssa_lhs): Likewise.
>         (target_for_debug_bind): Likewise.
>         (insert_debug_temp_for_var_def): Likewise.
>         (insert_debug_temps_for_defs): Likewise.
>         (reset_debug_uses): Likewise.
>         * tree-ssanames.c (release_ssa_name_fn): Likewise.
>         * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise.
>         (adjust_debug_stmts): Likewise.
>         (adjust_phi_and_debug_stmts): Likewise.
>         (vect_do_peeling): Likewise.
>         * tree-vect-loop.c (vect_transform_loop_stmt): Likewise.
>         (vect_transform_loop): Likewise.
>         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove
>         (MAY_HAVE_DEBUG_BIND_STMTS): Remove.
>         (MAY_HAVE_DEBUG_STMTS): Use options directly.
>
> gcc/cp/ChangeLog:
>
>         * parser.c (add_debug_begin_stmt): Use option directly.
> ---
>   gcc/c-family/c-gimplify.c    |  4 ++--
>   gcc/c/c-parser.c             |  2 +-
>   gcc/cfgexpand.c              |  2 +-
>   gcc/cp/parser.c              |  2 +-
>   gcc/function.c               |  2 +-
>   gcc/gimple-low.c             |  4 ++--
>   gcc/gimple-ssa-backprop.c    |  2 +-
>   gcc/ipa-param-manipulation.c |  2 +-
>   gcc/ipa-split.c              |  6 +++---
>   gcc/lto-streamer-in.c        |  4 ++--
>   gcc/sese.c                   |  2 +-
>   gcc/ssa-iterators.h          |  2 +-
>   gcc/tree-cfg.c               |  4 ++--
>   gcc/tree-inline.c            |  2 +-
>   gcc/tree-loop-distribution.c |  2 +-
>   gcc/tree-sra.c               |  2 +-
>   gcc/tree-ssa-dce.c           |  2 +-
>   gcc/tree-ssa-loop-ivopts.c   |  2 +-
>   gcc/tree-ssa-phiopt.c        |  2 +-
>   gcc/tree-ssa-reassoc.c       |  2 +-
>   gcc/tree-ssa-tail-merge.c    |  2 +-
>   gcc/tree-ssa-threadedge.c    |  2 +-
>   gcc/tree-ssa.c               | 10 +++++-----
>   gcc/tree-ssanames.c          |  2 +-
>   gcc/tree-vect-loop-manip.c   |  8 ++++----
>   gcc/tree-vect-loop.c         |  4 ++--
>   gcc/tree.h                   |  7 +------
>   27 files changed, 41 insertions(+), 46 deletions(-)
>
> diff --git a/gcc/c-family/c-gimplify.c b/gcc/c-family/c-gimplify.c
> index 0d38b706f4c..d9cf051a680 100644
> --- a/gcc/c-family/c-gimplify.c
> +++ b/gcc/c-family/c-gimplify.c
> @@ -295,7 +295,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
>     finish_bc_block (&stmt_list, bc_continue, clab);
>     if (incr)
>       {
> -      if (MAY_HAVE_DEBUG_MARKER_STMTS && incr_locus != UNKNOWN_LOCATION)
> +      if (debug_nonbind_markers_p && incr_locus != UNKNOWN_LOCATION)
>         {
>           tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
>           SET_EXPR_LOCATION (d, expr_loc_or_loc (incr, start_locus));
> @@ -305,7 +305,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
>       }
>     append_to_statement_list (entry, &stmt_list);
>
> -  if (MAY_HAVE_DEBUG_MARKER_STMTS && cond_locus != UNKNOWN_LOCATION)
> +  if (debug_nonbind_markers_p && cond_locus != UNKNOWN_LOCATION)
>       {
>         tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
>         SET_EXPR_LOCATION (d, cond_locus);
> diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
> index 80dd61d599e..1ba2b2f8342 100644
> --- a/gcc/c/c-parser.c
> +++ b/gcc/c/c-parser.c
> @@ -1791,7 +1791,7 @@ static void
>   add_debug_begin_stmt (location_t loc)
>   {
>     /* Don't add DEBUG_BEGIN_STMTs outside of functions, see PR84721.  */
> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS || !building_stmt_list_p ())
> +  if (!debug_nonbind_markers_p || !building_stmt_list_p ())
>       return;
>
>     tree stmt = build0 (DEBUG_BEGIN_STMT, void_type_node);
> diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
> index 03260b019e5..ad7ca18fc03 100644
> --- a/gcc/cfgexpand.c
> +++ b/gcc/cfgexpand.c
> @@ -6588,7 +6588,7 @@ pass_expand::execute (function *fun)
>     timevar_pop (TV_OUT_OF_SSA);
>     SA.partition_to_pseudo = XCNEWVEC (rtx, SA.map->num_partitions);
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS && flag_tree_ter)
> +  if (flag_var_tracking_assignments && flag_tree_ter)
>       {
>         gimple_stmt_iterator gsi;
>         FOR_EACH_BB_FN (bb, cfun)
> diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
> index 865778e4d30..0deb3f53d5e 100644
> --- a/gcc/cp/parser.c
> +++ b/gcc/cp/parser.c
> @@ -11681,7 +11681,7 @@ cp_parser_lambda_body (cp_parser* parser, tree lambda_expr)
>   static void
>   add_debug_begin_stmt (location_t loc)
>   {
> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS)
> +  if (!debug_nonbind_markers_p)
>       return;
>     if (DECL_DECLARED_CONCEPT_P (current_function_decl))
>       /* A concept is never expanded normally.  */
> diff --git a/gcc/function.c b/gcc/function.c
> index af3d57b32a3..c810a6001ce 100644
> --- a/gcc/function.c
> +++ b/gcc/function.c
> @@ -4872,7 +4872,7 @@ allocate_struct_function (tree fndecl, bool abstract_p)
>        disabled.  The markers make little sense without the variable
>        binding annotations among them.  */
>     cfun->debug_nonbind_markers = lang_hooks.emits_begin_stmt
> -    && MAY_HAVE_DEBUG_MARKER_STMTS;
> +    && debug_nonbind_markers_p;
>
>     cfun->x_range_query = &global_ranges;
>   }
> diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
> index 7e39c22df44..7d9b3df2ffb 100644
> --- a/gcc/gimple-low.c
> +++ b/gcc/gimple-low.c
> @@ -114,7 +114,7 @@ lower_function_body (void)
>     /* If we had begin stmt markers from e.g. PCH, but this compilation
>        doesn't want them, lower_stmt will have cleaned them up; we can
>        now clear the flag that indicates we had them.  */
> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS && cfun->debug_nonbind_markers)
> +  if (!debug_nonbind_markers_p && cfun->debug_nonbind_markers)
>       {
>         /* This counter needs not be exact, but before lowering it will
>          most certainly be.  */
> @@ -316,7 +316,7 @@ lower_stmt (gimple_stmt_iterator *gsi, struct lower_data *data)
>         /* Propagate fallthruness.  */
>         /* If the function (e.g. from PCH) had debug stmts, but they're
>          disabled for this compilation, remove them.  */
> -      if (!MAY_HAVE_DEBUG_MARKER_STMTS)
> +      if (!debug_nonbind_markers_p)
>         gsi_remove (gsi, true);
>         else
>         gsi_next (gsi);
> diff --git a/gcc/gimple-ssa-backprop.c b/gcc/gimple-ssa-backprop.c
> index 4b62bb92a21..3705c106fcc 100644
> --- a/gcc/gimple-ssa-backprop.c
> +++ b/gcc/gimple-ssa-backprop.c
> @@ -737,7 +737,7 @@ strip_sign_op (tree rhs)
>   void
>   backprop::prepare_change (tree var)
>   {
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       insert_debug_temp_for_var_def (NULL, var);
>     reset_flow_sensitive_info (var);
>   }
> diff --git a/gcc/ipa-param-manipulation.c b/gcc/ipa-param-manipulation.c
> index 26b02d7aa95..192ac8376dc 100644
> --- a/gcc/ipa-param-manipulation.c
> +++ b/gcc/ipa-param-manipulation.c
> @@ -773,7 +773,7 @@ ipa_param_adjustments::modify_call (cgraph_edge *cs,
>        vector to say for debug info that if parameter parm had been passed,
>        it would have value parm_Y(D).  */
>     tree old_decl = gimple_call_fndecl (stmt);
> -  if (MAY_HAVE_DEBUG_BIND_STMTS && old_decl && callee_decl)
> +  if (flag_var_tracking_assignments && old_decl && callee_decl)
>       {
>         vec<tree, va_gc> **debug_args = NULL;
>         unsigned i = 0;
> diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
> index c68577d04a9..65377678557 100644
> --- a/gcc/ipa-split.c
> +++ b/gcc/ipa-split.c
> @@ -1465,7 +1465,7 @@ split_function (basic_block return_bb, class split_point *split_point,
>       {
>         vec<tree, va_gc> **debug_args = NULL;
>         unsigned i = 0, len = 0;
> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
> +      if (flag_var_tracking_assignments)
>         {
>           debug_args = decl_debug_args_lookup (node->decl);
>           if (debug_args)
> @@ -1479,11 +1479,11 @@ split_function (basic_block return_bb, class split_point *split_point,
>             gimple *def_temp;
>
>             /* This needs to be done even without
> -              MAY_HAVE_DEBUG_BIND_STMTS, otherwise if it didn't exist
> +              flag_var_tracking_assignments, otherwise if it didn't exist
>                before, we'd end up with different SSA_NAME_VERSIONs
>                between -g and -g0.  */
>             arg = get_or_create_ssa_default_def (cfun, parm);
> -           if (!MAY_HAVE_DEBUG_BIND_STMTS || debug_args == NULL)
> +           if (!flag_var_tracking_assignments || debug_args == NULL)
>               continue;
>
>             while (i < len && (**debug_args)[i] != DECL_ORIGIN (parm))
> diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
> index eb8a7dc57b0..4165892d466 100644
> --- a/gcc/lto-streamer-in.c
> +++ b/gcc/lto-streamer-in.c
> @@ -1454,8 +1454,8 @@ input_function (tree fn_decl, class data_in *data_in,
>             {
>               if (is_gimple_debug (stmt)
>                   && (gimple_debug_nonbind_marker_p (stmt)
> -                     ? !MAY_HAVE_DEBUG_MARKER_STMTS
> -                     : !MAY_HAVE_DEBUG_BIND_STMTS))
> +                     ? !debug_nonbind_markers_p
> +                     : !flag_var_tracking_assignments))
>                 remove = true;
>               /* In case the linemap overflows locations can be dropped
>                  to zero.  Thus do not keep nonsensical inline entry markers
> diff --git a/gcc/sese.c b/gcc/sese.c
> index ca88f9bbfdf..5ddbb0b9532 100644
> --- a/gcc/sese.c
> +++ b/gcc/sese.c
> @@ -205,7 +205,7 @@ void
>   sese_insert_phis_for_liveouts (sese_info_p region, basic_block bb,
>                                edge false_e, edge true_e)
>   {
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       sese_reset_debug_liveouts (region);
>
>     unsigned i;
> diff --git a/gcc/ssa-iterators.h b/gcc/ssa-iterators.h
> index f70b0a42368..3e26ce051bf 100644
> --- a/gcc/ssa-iterators.h
> +++ b/gcc/ssa-iterators.h
> @@ -456,7 +456,7 @@ num_imm_uses (const_tree var)
>     const ssa_use_operand_t *ptr;
>     unsigned int num = 0;
>
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       {
>         for (ptr = start->next; ptr != start; ptr = ptr->next)
>         if (USE_STMT (ptr))
> diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
> index 4b4b0b52d9a..13aa4fafb3c 100644
> --- a/gcc/tree-cfg.c
> +++ b/gcc/tree-cfg.c
> @@ -613,7 +613,7 @@ make_blocks (gimple_seq seq)
>        latest (earliest we find) label, and moving debug stmts that are
>        not separated from it by nondebug nonlabel stmts after the
>        label.  */
> -  if (MAY_HAVE_DEBUG_MARKER_STMTS)
> +  if (debug_nonbind_markers_p)
>       {
>         gimple_stmt_iterator label = gsi_none ();
>
> @@ -2138,7 +2138,7 @@ gimple_merge_blocks (basic_block a, basic_block b)
>                 gsi_insert_before (&dest_gsi, stmt, GSI_NEW_STMT);
>             }
>           /* Other user labels keep around in a form of a debug stmt.  */
> -         else if (!DECL_ARTIFICIAL (label) && MAY_HAVE_DEBUG_BIND_STMTS)
> +         else if (!DECL_ARTIFICIAL (label) && flag_var_tracking_assignments)
>             {
>               gimple *dbg = gimple_build_debug_bind (label,
>                                                      integer_zero_node,
> diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
> index b2c58ac4c3b..9e6b9aa1a55 100644
> --- a/gcc/tree-inline.c
> +++ b/gcc/tree-inline.c
> @@ -6418,7 +6418,7 @@ tree_function_versioning (tree old_decl, tree new_decl,
>         }
>       }
>
> -  if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (param_body_adjs && flag_var_tracking_assignments)
>       {
>         vec<tree, va_gc> **debug_args = NULL;
>         unsigned int len = 0;
> diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
> index 583c01a42d8..1f2d0329b5e 100644
> --- a/gcc/tree-loop-distribution.c
> +++ b/gcc/tree-loop-distribution.c
> @@ -1000,7 +1000,7 @@ generate_loops_for_partition (class loop *loop, partition *partition,
>     /* Remove stmts not in the PARTITION bitmap.  */
>     bbs = get_loop_body_in_dom_order (loop);
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       for (i = 0; i < loop->num_nodes; i++)
>         {
>         basic_block bb = bbs[i];
> diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
> index 9b786e29e4e..f556662ac0c 100644
> --- a/gcc/tree-sra.c
> +++ b/gcc/tree-sra.c
> @@ -2588,7 +2588,7 @@ analyze_access_subtree (struct access *root, struct access *parent,
>           gcc_checking_assert (!root->grp_scalar_read
>                                && !root->grp_assignment_read);
>           sth_created = true;
> -         if (MAY_HAVE_DEBUG_BIND_STMTS)
> +         if (flag_var_tracking_assignments)
>             {
>               root->grp_to_be_debug_replaced = 1;
>               root->replacement_decl = create_access_replacement (root);
> diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
> index c4907af923c..6d4b8fb5411 100644
> --- a/gcc/tree-ssa-dce.c
> +++ b/gcc/tree-ssa-dce.c
> @@ -1142,7 +1142,7 @@ remove_dead_stmt (gimple_stmt_iterator *i, basic_block bb,
>
>     /* If this is a store into a variable that is being optimized away,
>        add a debug bind stmt if possible.  */
> -  if (MAY_HAVE_DEBUG_BIND_STMTS
> +  if (flag_var_tracking_assignments
>         && gimple_assign_single_p (stmt)
>         && is_gimple_val (gimple_assign_rhs1 (stmt)))
>       {
> diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
> index 4a498abe3b0..71c1ff74eb0 100644
> --- a/gcc/tree-ssa-loop-ivopts.c
> +++ b/gcc/tree-ssa-loop-ivopts.c
> @@ -7670,7 +7670,7 @@ remove_unused_ivs (struct ivopts_data *data, bitmap toremove)
>
>           tree def = info->iv->ssa_name;
>
> -         if (MAY_HAVE_DEBUG_BIND_STMTS && SSA_NAME_DEF_STMT (def))
> +         if (flag_var_tracking_assignments && SSA_NAME_DEF_STMT (def))
>             {
>               imm_use_iterator imm_iter;
>               use_operand_p use_p;
> diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
> index 0e339c46afa..969ffdde86e 100644
> --- a/gcc/tree-ssa-phiopt.c
> +++ b/gcc/tree-ssa-phiopt.c
> @@ -2389,7 +2389,7 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
>       }
>     update_stmt (use_stmt);
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       {
>         use_operand_p use_p;
>         imm_use_iterator iter;
> diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
> index db9fb4e1cac..436545024ea 100644
> --- a/gcc/tree-ssa-reassoc.c
> +++ b/gcc/tree-ssa-reassoc.c
> @@ -233,7 +233,7 @@ reassoc_remove_stmt (gimple_stmt_iterator *gsi)
>   {
>     gimple *stmt = gsi_stmt (*gsi);
>
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS || gimple_code (stmt) == GIMPLE_PHI)
> +  if (!flag_var_tracking_assignments || gimple_code (stmt) == GIMPLE_PHI)
>       return gsi_remove (gsi, true);
>
>     gimple_stmt_iterator prev = *gsi;
> diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
> index 48f94217d16..5487679e01d 100644
> --- a/gcc/tree-ssa-tail-merge.c
> +++ b/gcc/tree-ssa-tail-merge.c
> @@ -1796,7 +1796,7 @@ tail_merge_optimize (unsigned int todo)
>
>     if (nr_bbs_removed_total > 0)
>       {
> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
> +      if (flag_var_tracking_assignments)
>         {
>           calculate_dominance_info (CDI_DOMINATORS);
>           update_debug_stmts ();
> diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
> index a63a9764ff8..2365d189dac 100644
> --- a/gcc/tree-ssa-threadedge.c
> +++ b/gcc/tree-ssa-threadedge.c
> @@ -646,7 +646,7 @@ jump_threader::simplify_control_stmt_condition_1
>   void
>   propagate_threaded_block_debug_into (basic_block dest, basic_block src)
>   {
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return;
>
>     if (!single_pred_p (dest))
> diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
> index fde13defebf..67360910a71 100644
> --- a/gcc/tree-ssa.c
> +++ b/gcc/tree-ssa.c
> @@ -220,7 +220,7 @@ flush_pending_stmts (edge e)
>   void
>   gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
>   {
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       {
>         tree lhs = gimple_get_lhs (stmt);
>
> @@ -242,7 +242,7 @@ gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
>   tree
>   target_for_debug_bind (tree var)
>   {
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return NULL_TREE;
>
>     if (TREE_CODE (var) == SSA_NAME)
> @@ -307,7 +307,7 @@ insert_debug_temp_for_var_def (gimple_stmt_iterator *gsi, tree var)
>     int usecount = 0;
>     tree value = NULL;
>
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return;
>
>     /* If this name has already been registered for replacement, do nothing
> @@ -500,7 +500,7 @@ insert_debug_temps_for_defs (gimple_stmt_iterator *gsi)
>     ssa_op_iter op_iter;
>     def_operand_p def_p;
>
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return;
>
>     stmt = gsi_stmt (*gsi);
> @@ -526,7 +526,7 @@ reset_debug_uses (gimple *stmt)
>     imm_use_iterator imm_iter;
>     gimple *use_stmt;
>
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return;
>
>     FOR_EACH_PHI_OR_STMT_DEF (def_p, stmt, op_iter, SSA_OP_DEF)
> diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
> index f427c5a789b..eceb51a08ac 100644
> --- a/gcc/tree-ssanames.c
> +++ b/gcc/tree-ssanames.c
> @@ -560,7 +560,7 @@ release_ssa_name_fn (struct function *fn, tree var)
>         int saved_ssa_name_version = SSA_NAME_VERSION (var);
>         use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var));
>
> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
> +      if (flag_var_tracking_assignments)
>         insert_debug_temp_for_var_def (NULL, var);
>
>         if (flag_checking)
> diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
> index 4988c93fdb6..6ac6206edb5 100644
> --- a/gcc/tree-vect-loop-manip.c
> +++ b/gcc/tree-vect-loop-manip.c
> @@ -201,7 +201,7 @@ adjust_debug_stmts_now (adjust_info *ai)
>   static void
>   adjust_vec_debug_stmts (void)
>   {
> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (!flag_var_tracking_assignments)
>       return;
>
>     gcc_assert (adjust_vec.exists ());
> @@ -223,7 +223,7 @@ adjust_debug_stmts (tree from, tree to, basic_block bb)
>   {
>     adjust_info ai;
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS
> +  if (flag_var_tracking_assignments
>         && TREE_CODE (from) == SSA_NAME
>         && ! SSA_NAME_IS_DEFAULT_DEF (from)
>         && ! virtual_operand_p (from))
> @@ -251,7 +251,7 @@ adjust_phi_and_debug_stmts (gimple *update_phi, edge e, tree new_def)
>
>     SET_PHI_ARG_DEF (update_phi, e->dest_idx, new_def);
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       adjust_debug_stmts (orig_def, PHI_RESULT (update_phi),
>                         gimple_bb (update_phi));
>   }
> @@ -2693,7 +2693,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
>         vop_to_rename = create_lcssa_for_virtual_phi (orig_loop);
>       }
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
> +  if (flag_var_tracking_assignments)
>       {
>         gcc_assert (!adjust_vec.exists ());
>         adjust_vec.create (32);
> diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
> index 961c1623f81..615ef6f2314 100644
> --- a/gcc/tree-vect-loop.c
> +++ b/gcc/tree-vect-loop.c
> @@ -9332,7 +9332,7 @@ vect_transform_loop_stmt (loop_vec_info loop_vinfo, stmt_vec_info stmt_info,
>       dump_printf_loc (MSG_NOTE, vect_location,
>                      "------>vectorizing statement: %G", stmt_info->stmt);
>
> -  if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
> +  if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
>       vect_loop_kill_debug_uses (loop, stmt_info);
>
>     if (!STMT_VINFO_RELEVANT_P (stmt_info)
> @@ -9706,7 +9706,7 @@ vect_transform_loop (loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
>           if (!stmt_info)
>             continue;
>
> -         if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
> +         if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
>             vect_loop_kill_debug_uses (loop, stmt_info);
>
>           if (!STMT_VINFO_RELEVANT_P (stmt_info)
> diff --git a/gcc/tree.h b/gcc/tree.h
> index 7542d97ce12..ec9e3a38853 100644
> --- a/gcc/tree.h
> +++ b/gcc/tree.h
> @@ -1174,14 +1174,9 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
>   #define VL_EXP_OPERAND_LENGTH(NODE) \
>     ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
>
> -/* Nonzero if gimple_debug_nonbind_marker_p() may possibly hold.  */
> -#define MAY_HAVE_DEBUG_MARKER_STMTS debug_nonbind_markers_p
> -/* Nonzero if gimple_debug_bind_p() (and thus
> -   gimple_debug_source_bind_p()) may possibly hold.  */
> -#define MAY_HAVE_DEBUG_BIND_STMTS flag_var_tracking_assignments
>   /* Nonzero if is_gimple_debug() may possibly hold.  */
>   #define MAY_HAVE_DEBUG_STMTS                                  \
> -  (MAY_HAVE_DEBUG_MARKER_STMTS || MAY_HAVE_DEBUG_BIND_STMTS)
> +  (debug_nonbind_markers_p || flag_var_tracking_assignments)
>
>   /* In a LOOP_EXPR node.  */
>   #define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
> --
> 2.33.0
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-10-18 10:05 ` Richard Biener
@ 2021-11-12 14:37   ` Martin Liška
  2021-11-16  2:21     ` Jeff Law
  2021-11-19  8:59   ` Alexandre Oliva
  1 sibling, 1 reply; 10+ messages in thread
From: Martin Liška @ 2021-11-12 14:37 UTC (permalink / raw)
  To: Richard Biener, Alexandre Oliva; +Cc: GCC Patches

@Alexandre: PING

On 10/18/21 12:05, Richard Biener wrote:
> On Mon, Oct 18, 2021 at 10:54 AM Martin Liška <mliska@suse.cz> wrote:
>>
>> The macros correspond 1:1 to an option flags and make it harder
>> to find all usages of the flags.
>>
>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>
>> Ready to be installed?
> 
> Hmm, they were introduced on purpose - since you leave around
> MAY_HAVE_DEBUG_STMTS they conceptually make the code
> easier to understand.
> 
> So I'm not sure if we want this change.  CCed Alex so maybe he
> can weight in.
> 
> Richard.
> 
>> Thanks,
>> Martin
>>
>> gcc/c-family/ChangeLog:
>>
>>          * c-gimplify.c (genericize_c_loop): Use option directly.
>>
>> gcc/c/ChangeLog:
>>
>>          * c-parser.c (add_debug_begin_stmt): Use option directly.
>>
>> gcc/ChangeLog:
>>
>>          * cfgexpand.c (pass_expand::execute): Use option directly.
>>          * function.c (allocate_struct_function): Likewise.
>>          * gimple-low.c (lower_function_body): Likewise.
>>          (lower_stmt): Likewise.
>>          * gimple-ssa-backprop.c (backprop::prepare_change): Likewise.
>>          * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise.
>>          * ipa-split.c (split_function): Likewise.
>>          * lto-streamer-in.c (input_function): Likewise.
>>          * sese.c (sese_insert_phis_for_liveouts): Likewise.
>>          * ssa-iterators.h (num_imm_uses): Likewise.
>>          * tree-cfg.c (make_blocks): Likewise.
>>          (gimple_merge_blocks): Likewise.
>>          * tree-inline.c (tree_function_versioning): Likewise.
>>          * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
>>          * tree-sra.c (analyze_access_subtree): Likewise.
>>          * tree-ssa-dce.c (remove_dead_stmt): Likewise.
>>          * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
>>          * tree-ssa-phiopt.c (spaceship_replacement): Likewise.
>>          * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
>>          * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
>>          * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise.
>>          * tree-ssa.c (gimple_replace_ssa_lhs): Likewise.
>>          (target_for_debug_bind): Likewise.
>>          (insert_debug_temp_for_var_def): Likewise.
>>          (insert_debug_temps_for_defs): Likewise.
>>          (reset_debug_uses): Likewise.
>>          * tree-ssanames.c (release_ssa_name_fn): Likewise.
>>          * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise.
>>          (adjust_debug_stmts): Likewise.
>>          (adjust_phi_and_debug_stmts): Likewise.
>>          (vect_do_peeling): Likewise.
>>          * tree-vect-loop.c (vect_transform_loop_stmt): Likewise.
>>          (vect_transform_loop): Likewise.
>>          * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove
>>          (MAY_HAVE_DEBUG_BIND_STMTS): Remove.
>>          (MAY_HAVE_DEBUG_STMTS): Use options directly.
>>
>> gcc/cp/ChangeLog:
>>
>>          * parser.c (add_debug_begin_stmt): Use option directly.
>> ---
>>    gcc/c-family/c-gimplify.c    |  4 ++--
>>    gcc/c/c-parser.c             |  2 +-
>>    gcc/cfgexpand.c              |  2 +-
>>    gcc/cp/parser.c              |  2 +-
>>    gcc/function.c               |  2 +-
>>    gcc/gimple-low.c             |  4 ++--
>>    gcc/gimple-ssa-backprop.c    |  2 +-
>>    gcc/ipa-param-manipulation.c |  2 +-
>>    gcc/ipa-split.c              |  6 +++---
>>    gcc/lto-streamer-in.c        |  4 ++--
>>    gcc/sese.c                   |  2 +-
>>    gcc/ssa-iterators.h          |  2 +-
>>    gcc/tree-cfg.c               |  4 ++--
>>    gcc/tree-inline.c            |  2 +-
>>    gcc/tree-loop-distribution.c |  2 +-
>>    gcc/tree-sra.c               |  2 +-
>>    gcc/tree-ssa-dce.c           |  2 +-
>>    gcc/tree-ssa-loop-ivopts.c   |  2 +-
>>    gcc/tree-ssa-phiopt.c        |  2 +-
>>    gcc/tree-ssa-reassoc.c       |  2 +-
>>    gcc/tree-ssa-tail-merge.c    |  2 +-
>>    gcc/tree-ssa-threadedge.c    |  2 +-
>>    gcc/tree-ssa.c               | 10 +++++-----
>>    gcc/tree-ssanames.c          |  2 +-
>>    gcc/tree-vect-loop-manip.c   |  8 ++++----
>>    gcc/tree-vect-loop.c         |  4 ++--
>>    gcc/tree.h                   |  7 +------
>>    27 files changed, 41 insertions(+), 46 deletions(-)
>>
>> diff --git a/gcc/c-family/c-gimplify.c b/gcc/c-family/c-gimplify.c
>> index 0d38b706f4c..d9cf051a680 100644
>> --- a/gcc/c-family/c-gimplify.c
>> +++ b/gcc/c-family/c-gimplify.c
>> @@ -295,7 +295,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
>>      finish_bc_block (&stmt_list, bc_continue, clab);
>>      if (incr)
>>        {
>> -      if (MAY_HAVE_DEBUG_MARKER_STMTS && incr_locus != UNKNOWN_LOCATION)
>> +      if (debug_nonbind_markers_p && incr_locus != UNKNOWN_LOCATION)
>>          {
>>            tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
>>            SET_EXPR_LOCATION (d, expr_loc_or_loc (incr, start_locus));
>> @@ -305,7 +305,7 @@ genericize_c_loop (tree *stmt_p, location_t start_locus, tree cond, tree body,
>>        }
>>      append_to_statement_list (entry, &stmt_list);
>>
>> -  if (MAY_HAVE_DEBUG_MARKER_STMTS && cond_locus != UNKNOWN_LOCATION)
>> +  if (debug_nonbind_markers_p && cond_locus != UNKNOWN_LOCATION)
>>        {
>>          tree d = build0 (DEBUG_BEGIN_STMT, void_type_node);
>>          SET_EXPR_LOCATION (d, cond_locus);
>> diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
>> index 80dd61d599e..1ba2b2f8342 100644
>> --- a/gcc/c/c-parser.c
>> +++ b/gcc/c/c-parser.c
>> @@ -1791,7 +1791,7 @@ static void
>>    add_debug_begin_stmt (location_t loc)
>>    {
>>      /* Don't add DEBUG_BEGIN_STMTs outside of functions, see PR84721.  */
>> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS || !building_stmt_list_p ())
>> +  if (!debug_nonbind_markers_p || !building_stmt_list_p ())
>>        return;
>>
>>      tree stmt = build0 (DEBUG_BEGIN_STMT, void_type_node);
>> diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
>> index 03260b019e5..ad7ca18fc03 100644
>> --- a/gcc/cfgexpand.c
>> +++ b/gcc/cfgexpand.c
>> @@ -6588,7 +6588,7 @@ pass_expand::execute (function *fun)
>>      timevar_pop (TV_OUT_OF_SSA);
>>      SA.partition_to_pseudo = XCNEWVEC (rtx, SA.map->num_partitions);
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS && flag_tree_ter)
>> +  if (flag_var_tracking_assignments && flag_tree_ter)
>>        {
>>          gimple_stmt_iterator gsi;
>>          FOR_EACH_BB_FN (bb, cfun)
>> diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
>> index 865778e4d30..0deb3f53d5e 100644
>> --- a/gcc/cp/parser.c
>> +++ b/gcc/cp/parser.c
>> @@ -11681,7 +11681,7 @@ cp_parser_lambda_body (cp_parser* parser, tree lambda_expr)
>>    static void
>>    add_debug_begin_stmt (location_t loc)
>>    {
>> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS)
>> +  if (!debug_nonbind_markers_p)
>>        return;
>>      if (DECL_DECLARED_CONCEPT_P (current_function_decl))
>>        /* A concept is never expanded normally.  */
>> diff --git a/gcc/function.c b/gcc/function.c
>> index af3d57b32a3..c810a6001ce 100644
>> --- a/gcc/function.c
>> +++ b/gcc/function.c
>> @@ -4872,7 +4872,7 @@ allocate_struct_function (tree fndecl, bool abstract_p)
>>         disabled.  The markers make little sense without the variable
>>         binding annotations among them.  */
>>      cfun->debug_nonbind_markers = lang_hooks.emits_begin_stmt
>> -    && MAY_HAVE_DEBUG_MARKER_STMTS;
>> +    && debug_nonbind_markers_p;
>>
>>      cfun->x_range_query = &global_ranges;
>>    }
>> diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
>> index 7e39c22df44..7d9b3df2ffb 100644
>> --- a/gcc/gimple-low.c
>> +++ b/gcc/gimple-low.c
>> @@ -114,7 +114,7 @@ lower_function_body (void)
>>      /* If we had begin stmt markers from e.g. PCH, but this compilation
>>         doesn't want them, lower_stmt will have cleaned them up; we can
>>         now clear the flag that indicates we had them.  */
>> -  if (!MAY_HAVE_DEBUG_MARKER_STMTS && cfun->debug_nonbind_markers)
>> +  if (!debug_nonbind_markers_p && cfun->debug_nonbind_markers)
>>        {
>>          /* This counter needs not be exact, but before lowering it will
>>           most certainly be.  */
>> @@ -316,7 +316,7 @@ lower_stmt (gimple_stmt_iterator *gsi, struct lower_data *data)
>>          /* Propagate fallthruness.  */
>>          /* If the function (e.g. from PCH) had debug stmts, but they're
>>           disabled for this compilation, remove them.  */
>> -      if (!MAY_HAVE_DEBUG_MARKER_STMTS)
>> +      if (!debug_nonbind_markers_p)
>>          gsi_remove (gsi, true);
>>          else
>>          gsi_next (gsi);
>> diff --git a/gcc/gimple-ssa-backprop.c b/gcc/gimple-ssa-backprop.c
>> index 4b62bb92a21..3705c106fcc 100644
>> --- a/gcc/gimple-ssa-backprop.c
>> +++ b/gcc/gimple-ssa-backprop.c
>> @@ -737,7 +737,7 @@ strip_sign_op (tree rhs)
>>    void
>>    backprop::prepare_change (tree var)
>>    {
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        insert_debug_temp_for_var_def (NULL, var);
>>      reset_flow_sensitive_info (var);
>>    }
>> diff --git a/gcc/ipa-param-manipulation.c b/gcc/ipa-param-manipulation.c
>> index 26b02d7aa95..192ac8376dc 100644
>> --- a/gcc/ipa-param-manipulation.c
>> +++ b/gcc/ipa-param-manipulation.c
>> @@ -773,7 +773,7 @@ ipa_param_adjustments::modify_call (cgraph_edge *cs,
>>         vector to say for debug info that if parameter parm had been passed,
>>         it would have value parm_Y(D).  */
>>      tree old_decl = gimple_call_fndecl (stmt);
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS && old_decl && callee_decl)
>> +  if (flag_var_tracking_assignments && old_decl && callee_decl)
>>        {
>>          vec<tree, va_gc> **debug_args = NULL;
>>          unsigned i = 0;
>> diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
>> index c68577d04a9..65377678557 100644
>> --- a/gcc/ipa-split.c
>> +++ b/gcc/ipa-split.c
>> @@ -1465,7 +1465,7 @@ split_function (basic_block return_bb, class split_point *split_point,
>>        {
>>          vec<tree, va_gc> **debug_args = NULL;
>>          unsigned i = 0, len = 0;
>> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +      if (flag_var_tracking_assignments)
>>          {
>>            debug_args = decl_debug_args_lookup (node->decl);
>>            if (debug_args)
>> @@ -1479,11 +1479,11 @@ split_function (basic_block return_bb, class split_point *split_point,
>>              gimple *def_temp;
>>
>>              /* This needs to be done even without
>> -              MAY_HAVE_DEBUG_BIND_STMTS, otherwise if it didn't exist
>> +              flag_var_tracking_assignments, otherwise if it didn't exist
>>                 before, we'd end up with different SSA_NAME_VERSIONs
>>                 between -g and -g0.  */
>>              arg = get_or_create_ssa_default_def (cfun, parm);
>> -           if (!MAY_HAVE_DEBUG_BIND_STMTS || debug_args == NULL)
>> +           if (!flag_var_tracking_assignments || debug_args == NULL)
>>                continue;
>>
>>              while (i < len && (**debug_args)[i] != DECL_ORIGIN (parm))
>> diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
>> index eb8a7dc57b0..4165892d466 100644
>> --- a/gcc/lto-streamer-in.c
>> +++ b/gcc/lto-streamer-in.c
>> @@ -1454,8 +1454,8 @@ input_function (tree fn_decl, class data_in *data_in,
>>              {
>>                if (is_gimple_debug (stmt)
>>                    && (gimple_debug_nonbind_marker_p (stmt)
>> -                     ? !MAY_HAVE_DEBUG_MARKER_STMTS
>> -                     : !MAY_HAVE_DEBUG_BIND_STMTS))
>> +                     ? !debug_nonbind_markers_p
>> +                     : !flag_var_tracking_assignments))
>>                  remove = true;
>>                /* In case the linemap overflows locations can be dropped
>>                   to zero.  Thus do not keep nonsensical inline entry markers
>> diff --git a/gcc/sese.c b/gcc/sese.c
>> index ca88f9bbfdf..5ddbb0b9532 100644
>> --- a/gcc/sese.c
>> +++ b/gcc/sese.c
>> @@ -205,7 +205,7 @@ void
>>    sese_insert_phis_for_liveouts (sese_info_p region, basic_block bb,
>>                                 edge false_e, edge true_e)
>>    {
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        sese_reset_debug_liveouts (region);
>>
>>      unsigned i;
>> diff --git a/gcc/ssa-iterators.h b/gcc/ssa-iterators.h
>> index f70b0a42368..3e26ce051bf 100644
>> --- a/gcc/ssa-iterators.h
>> +++ b/gcc/ssa-iterators.h
>> @@ -456,7 +456,7 @@ num_imm_uses (const_tree var)
>>      const ssa_use_operand_t *ptr;
>>      unsigned int num = 0;
>>
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        {
>>          for (ptr = start->next; ptr != start; ptr = ptr->next)
>>          if (USE_STMT (ptr))
>> diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
>> index 4b4b0b52d9a..13aa4fafb3c 100644
>> --- a/gcc/tree-cfg.c
>> +++ b/gcc/tree-cfg.c
>> @@ -613,7 +613,7 @@ make_blocks (gimple_seq seq)
>>         latest (earliest we find) label, and moving debug stmts that are
>>         not separated from it by nondebug nonlabel stmts after the
>>         label.  */
>> -  if (MAY_HAVE_DEBUG_MARKER_STMTS)
>> +  if (debug_nonbind_markers_p)
>>        {
>>          gimple_stmt_iterator label = gsi_none ();
>>
>> @@ -2138,7 +2138,7 @@ gimple_merge_blocks (basic_block a, basic_block b)
>>                  gsi_insert_before (&dest_gsi, stmt, GSI_NEW_STMT);
>>              }
>>            /* Other user labels keep around in a form of a debug stmt.  */
>> -         else if (!DECL_ARTIFICIAL (label) && MAY_HAVE_DEBUG_BIND_STMTS)
>> +         else if (!DECL_ARTIFICIAL (label) && flag_var_tracking_assignments)
>>              {
>>                gimple *dbg = gimple_build_debug_bind (label,
>>                                                       integer_zero_node,
>> diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
>> index b2c58ac4c3b..9e6b9aa1a55 100644
>> --- a/gcc/tree-inline.c
>> +++ b/gcc/tree-inline.c
>> @@ -6418,7 +6418,7 @@ tree_function_versioning (tree old_decl, tree new_decl,
>>          }
>>        }
>>
>> -  if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (param_body_adjs && flag_var_tracking_assignments)
>>        {
>>          vec<tree, va_gc> **debug_args = NULL;
>>          unsigned int len = 0;
>> diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
>> index 583c01a42d8..1f2d0329b5e 100644
>> --- a/gcc/tree-loop-distribution.c
>> +++ b/gcc/tree-loop-distribution.c
>> @@ -1000,7 +1000,7 @@ generate_loops_for_partition (class loop *loop, partition *partition,
>>      /* Remove stmts not in the PARTITION bitmap.  */
>>      bbs = get_loop_body_in_dom_order (loop);
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        for (i = 0; i < loop->num_nodes; i++)
>>          {
>>          basic_block bb = bbs[i];
>> diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
>> index 9b786e29e4e..f556662ac0c 100644
>> --- a/gcc/tree-sra.c
>> +++ b/gcc/tree-sra.c
>> @@ -2588,7 +2588,7 @@ analyze_access_subtree (struct access *root, struct access *parent,
>>            gcc_checking_assert (!root->grp_scalar_read
>>                                 && !root->grp_assignment_read);
>>            sth_created = true;
>> -         if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +         if (flag_var_tracking_assignments)
>>              {
>>                root->grp_to_be_debug_replaced = 1;
>>                root->replacement_decl = create_access_replacement (root);
>> diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
>> index c4907af923c..6d4b8fb5411 100644
>> --- a/gcc/tree-ssa-dce.c
>> +++ b/gcc/tree-ssa-dce.c
>> @@ -1142,7 +1142,7 @@ remove_dead_stmt (gimple_stmt_iterator *i, basic_block bb,
>>
>>      /* If this is a store into a variable that is being optimized away,
>>         add a debug bind stmt if possible.  */
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS
>> +  if (flag_var_tracking_assignments
>>          && gimple_assign_single_p (stmt)
>>          && is_gimple_val (gimple_assign_rhs1 (stmt)))
>>        {
>> diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
>> index 4a498abe3b0..71c1ff74eb0 100644
>> --- a/gcc/tree-ssa-loop-ivopts.c
>> +++ b/gcc/tree-ssa-loop-ivopts.c
>> @@ -7670,7 +7670,7 @@ remove_unused_ivs (struct ivopts_data *data, bitmap toremove)
>>
>>            tree def = info->iv->ssa_name;
>>
>> -         if (MAY_HAVE_DEBUG_BIND_STMTS && SSA_NAME_DEF_STMT (def))
>> +         if (flag_var_tracking_assignments && SSA_NAME_DEF_STMT (def))
>>              {
>>                imm_use_iterator imm_iter;
>>                use_operand_p use_p;
>> diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
>> index 0e339c46afa..969ffdde86e 100644
>> --- a/gcc/tree-ssa-phiopt.c
>> +++ b/gcc/tree-ssa-phiopt.c
>> @@ -2389,7 +2389,7 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
>>        }
>>      update_stmt (use_stmt);
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        {
>>          use_operand_p use_p;
>>          imm_use_iterator iter;
>> diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
>> index db9fb4e1cac..436545024ea 100644
>> --- a/gcc/tree-ssa-reassoc.c
>> +++ b/gcc/tree-ssa-reassoc.c
>> @@ -233,7 +233,7 @@ reassoc_remove_stmt (gimple_stmt_iterator *gsi)
>>    {
>>      gimple *stmt = gsi_stmt (*gsi);
>>
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS || gimple_code (stmt) == GIMPLE_PHI)
>> +  if (!flag_var_tracking_assignments || gimple_code (stmt) == GIMPLE_PHI)
>>        return gsi_remove (gsi, true);
>>
>>      gimple_stmt_iterator prev = *gsi;
>> diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
>> index 48f94217d16..5487679e01d 100644
>> --- a/gcc/tree-ssa-tail-merge.c
>> +++ b/gcc/tree-ssa-tail-merge.c
>> @@ -1796,7 +1796,7 @@ tail_merge_optimize (unsigned int todo)
>>
>>      if (nr_bbs_removed_total > 0)
>>        {
>> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +      if (flag_var_tracking_assignments)
>>          {
>>            calculate_dominance_info (CDI_DOMINATORS);
>>            update_debug_stmts ();
>> diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
>> index a63a9764ff8..2365d189dac 100644
>> --- a/gcc/tree-ssa-threadedge.c
>> +++ b/gcc/tree-ssa-threadedge.c
>> @@ -646,7 +646,7 @@ jump_threader::simplify_control_stmt_condition_1
>>    void
>>    propagate_threaded_block_debug_into (basic_block dest, basic_block src)
>>    {
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return;
>>
>>      if (!single_pred_p (dest))
>> diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
>> index fde13defebf..67360910a71 100644
>> --- a/gcc/tree-ssa.c
>> +++ b/gcc/tree-ssa.c
>> @@ -220,7 +220,7 @@ flush_pending_stmts (edge e)
>>    void
>>    gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
>>    {
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        {
>>          tree lhs = gimple_get_lhs (stmt);
>>
>> @@ -242,7 +242,7 @@ gimple_replace_ssa_lhs (gimple *stmt, tree nlhs)
>>    tree
>>    target_for_debug_bind (tree var)
>>    {
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return NULL_TREE;
>>
>>      if (TREE_CODE (var) == SSA_NAME)
>> @@ -307,7 +307,7 @@ insert_debug_temp_for_var_def (gimple_stmt_iterator *gsi, tree var)
>>      int usecount = 0;
>>      tree value = NULL;
>>
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return;
>>
>>      /* If this name has already been registered for replacement, do nothing
>> @@ -500,7 +500,7 @@ insert_debug_temps_for_defs (gimple_stmt_iterator *gsi)
>>      ssa_op_iter op_iter;
>>      def_operand_p def_p;
>>
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return;
>>
>>      stmt = gsi_stmt (*gsi);
>> @@ -526,7 +526,7 @@ reset_debug_uses (gimple *stmt)
>>      imm_use_iterator imm_iter;
>>      gimple *use_stmt;
>>
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return;
>>
>>      FOR_EACH_PHI_OR_STMT_DEF (def_p, stmt, op_iter, SSA_OP_DEF)
>> diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
>> index f427c5a789b..eceb51a08ac 100644
>> --- a/gcc/tree-ssanames.c
>> +++ b/gcc/tree-ssanames.c
>> @@ -560,7 +560,7 @@ release_ssa_name_fn (struct function *fn, tree var)
>>          int saved_ssa_name_version = SSA_NAME_VERSION (var);
>>          use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var));
>>
>> -      if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +      if (flag_var_tracking_assignments)
>>          insert_debug_temp_for_var_def (NULL, var);
>>
>>          if (flag_checking)
>> diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
>> index 4988c93fdb6..6ac6206edb5 100644
>> --- a/gcc/tree-vect-loop-manip.c
>> +++ b/gcc/tree-vect-loop-manip.c
>> @@ -201,7 +201,7 @@ adjust_debug_stmts_now (adjust_info *ai)
>>    static void
>>    adjust_vec_debug_stmts (void)
>>    {
>> -  if (!MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (!flag_var_tracking_assignments)
>>        return;
>>
>>      gcc_assert (adjust_vec.exists ());
>> @@ -223,7 +223,7 @@ adjust_debug_stmts (tree from, tree to, basic_block bb)
>>    {
>>      adjust_info ai;
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS
>> +  if (flag_var_tracking_assignments
>>          && TREE_CODE (from) == SSA_NAME
>>          && ! SSA_NAME_IS_DEFAULT_DEF (from)
>>          && ! virtual_operand_p (from))
>> @@ -251,7 +251,7 @@ adjust_phi_and_debug_stmts (gimple *update_phi, edge e, tree new_def)
>>
>>      SET_PHI_ARG_DEF (update_phi, e->dest_idx, new_def);
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        adjust_debug_stmts (orig_def, PHI_RESULT (update_phi),
>>                          gimple_bb (update_phi));
>>    }
>> @@ -2693,7 +2693,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
>>          vop_to_rename = create_lcssa_for_virtual_phi (orig_loop);
>>        }
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS)
>> +  if (flag_var_tracking_assignments)
>>        {
>>          gcc_assert (!adjust_vec.exists ());
>>          adjust_vec.create (32);
>> diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
>> index 961c1623f81..615ef6f2314 100644
>> --- a/gcc/tree-vect-loop.c
>> +++ b/gcc/tree-vect-loop.c
>> @@ -9332,7 +9332,7 @@ vect_transform_loop_stmt (loop_vec_info loop_vinfo, stmt_vec_info stmt_info,
>>        dump_printf_loc (MSG_NOTE, vect_location,
>>                       "------>vectorizing statement: %G", stmt_info->stmt);
>>
>> -  if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
>> +  if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
>>        vect_loop_kill_debug_uses (loop, stmt_info);
>>
>>      if (!STMT_VINFO_RELEVANT_P (stmt_info)
>> @@ -9706,7 +9706,7 @@ vect_transform_loop (loop_vec_info loop_vinfo, gimple *loop_vectorized_call)
>>            if (!stmt_info)
>>              continue;
>>
>> -         if (MAY_HAVE_DEBUG_BIND_STMTS && !STMT_VINFO_LIVE_P (stmt_info))
>> +         if (flag_var_tracking_assignments && !STMT_VINFO_LIVE_P (stmt_info))
>>              vect_loop_kill_debug_uses (loop, stmt_info);
>>
>>            if (!STMT_VINFO_RELEVANT_P (stmt_info)
>> diff --git a/gcc/tree.h b/gcc/tree.h
>> index 7542d97ce12..ec9e3a38853 100644
>> --- a/gcc/tree.h
>> +++ b/gcc/tree.h
>> @@ -1174,14 +1174,9 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
>>    #define VL_EXP_OPERAND_LENGTH(NODE) \
>>      ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
>>
>> -/* Nonzero if gimple_debug_nonbind_marker_p() may possibly hold.  */
>> -#define MAY_HAVE_DEBUG_MARKER_STMTS debug_nonbind_markers_p
>> -/* Nonzero if gimple_debug_bind_p() (and thus
>> -   gimple_debug_source_bind_p()) may possibly hold.  */
>> -#define MAY_HAVE_DEBUG_BIND_STMTS flag_var_tracking_assignments
>>    /* Nonzero if is_gimple_debug() may possibly hold.  */
>>    #define MAY_HAVE_DEBUG_STMTS                                  \
>> -  (MAY_HAVE_DEBUG_MARKER_STMTS || MAY_HAVE_DEBUG_BIND_STMTS)
>> +  (debug_nonbind_markers_p || flag_var_tracking_assignments)
>>
>>    /* In a LOOP_EXPR node.  */
>>    #define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
>> --
>> 2.33.0
>>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-12 14:37   ` Martin Liška
@ 2021-11-16  2:21     ` Jeff Law
  0 siblings, 0 replies; 10+ messages in thread
From: Jeff Law @ 2021-11-16  2:21 UTC (permalink / raw)
  To: Martin Liška, Richard Biener, Alexandre Oliva; +Cc: GCC Patches



On 11/12/2021 7:37 AM, Martin Liška wrote:
> @Alexandre: PING
>
> On 10/18/21 12:05, Richard Biener wrote:
>> On Mon, Oct 18, 2021 at 10:54 AM Martin Liška <mliska@suse.cz> wrote:
>>>
>>> The macros correspond 1:1 to an option flags and make it harder
>>> to find all usages of the flags.
>>>
>>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>>
>>> Ready to be installed?
>>
>> Hmm, they were introduced on purpose - since you leave around
>> MAY_HAVE_DEBUG_STMTS they conceptually make the code
>> easier to understand.
>>
>> So I'm not sure if we want this change.  CCed Alex so maybe he
>> can weight in.
I'd give it another 48hrs, then go ahead and commit.  My recollection is 
those were in place to allow the bulk of the work to go in independent 
of the switches that activated the SFN debugging bits.


Jeff

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-10-18 10:05 ` Richard Biener
  2021-11-12 14:37   ` Martin Liška
@ 2021-11-19  8:59   ` Alexandre Oliva
  2021-11-19  9:38     ` Richard Biener
  2021-11-19 13:22     ` Martin Liška
  1 sibling, 2 replies; 10+ messages in thread
From: Alexandre Oliva @ 2021-11-19  8:59 UTC (permalink / raw)
  To: Richard Biener via Gcc-patches

On Oct 18, 2021, Richard Biener via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:

> On Mon, Oct 18, 2021 at 10:54 AM Martin Liška <mliska@suse.cz> wrote:
>> 
>> The macros correspond 1:1 to an option flags and make it harder
>> to find all usages of the flags.
>> 
>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>> 
>> Ready to be installed?

> Hmm, they were introduced on purpose

Yup.  Though there is a 1:1 equivalence right now, conceptually other
kinds of debug marker stmts, and of debug bind stmts, could be
introduced, and then the macros would be adjusted to encompass the new
functionality, covering presumably different options as well.

By removing the macros, every use of the options would have to be
reassessed to tell whether it needs to be changed to cover the new
features, or left alone because it's really meant to refer to that
specific option.

So I find the abstraction useful.  However, I don't have plans to add
other kinds of debug stmts, and I don't know of anyone else who does, so
I won't stand in the way if others think removing these abstractions is
a positive change.

-- 
Alexandre Oliva, happy hacker                https://FSFLA.org/blogs/lxo/
   Free Software Activist                       GNU Toolchain Engineer
Disinformation flourishes because many people care deeply about injustice
but very few check the facts.  Ask me about <https://stallmansupport.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-19  8:59   ` Alexandre Oliva
@ 2021-11-19  9:38     ` Richard Biener
  2021-11-19  9:44       ` Jakub Jelinek
  2021-11-19 13:22     ` Martin Liška
  1 sibling, 1 reply; 10+ messages in thread
From: Richard Biener @ 2021-11-19  9:38 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: Richard Biener via Gcc-patches, Martin Liška

On Fri, Nov 19, 2021 at 9:59 AM Alexandre Oliva <oliva@gnu.org> wrote:
>
> On Oct 18, 2021, Richard Biener via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
>
> > On Mon, Oct 18, 2021 at 10:54 AM Martin Liška <mliska@suse.cz> wrote:
> >>
> >> The macros correspond 1:1 to an option flags and make it harder
> >> to find all usages of the flags.
> >>
> >> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> >>
> >> Ready to be installed?
>
> > Hmm, they were introduced on purpose
>
> Yup.  Though there is a 1:1 equivalence right now, conceptually other
> kinds of debug marker stmts, and of debug bind stmts, could be
> introduced, and then the macros would be adjusted to encompass the new
> functionality, covering presumably different options as well.
>
> By removing the macros, every use of the options would have to be
> reassessed to tell whether it needs to be changed to cover the new
> features, or left alone because it's really meant to refer to that
> specific option.
>
> So I find the abstraction useful.  However, I don't have plans to add
> other kinds of debug stmts, and I don't know of anyone else who does, so
> I won't stand in the way if others think removing these abstractions is
> a positive change.

Since the patch keeps some abstraction but not all I think we should
keep them all for now.

Richard.

>
> --
> Alexandre Oliva, happy hacker                https://FSFLA.org/blogs/lxo/
>    Free Software Activist                       GNU Toolchain Engineer
> Disinformation flourishes because many people care deeply about injustice
> but very few check the facts.  Ask me about <https://stallmansupport.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-19  9:38     ` Richard Biener
@ 2021-11-19  9:44       ` Jakub Jelinek
  0 siblings, 0 replies; 10+ messages in thread
From: Jakub Jelinek @ 2021-11-19  9:44 UTC (permalink / raw)
  To: Richard Biener; +Cc: Alexandre Oliva, Richard Biener via Gcc-patches

On Fri, Nov 19, 2021 at 10:38:41AM +0100, Richard Biener via Gcc-patches wrote:
> > Yup.  Though there is a 1:1 equivalence right now, conceptually other
> > kinds of debug marker stmts, and of debug bind stmts, could be
> > introduced, and then the macros would be adjusted to encompass the new
> > functionality, covering presumably different options as well.
> >
> > By removing the macros, every use of the options would have to be
> > reassessed to tell whether it needs to be changed to cover the new
> > features, or left alone because it's really meant to refer to that
> > specific option.
> >
> > So I find the abstraction useful.  However, I don't have plans to add
> > other kinds of debug stmts, and I don't know of anyone else who does, so
> > I won't stand in the way if others think removing these abstractions is
> > a positive change.
> 
> Since the patch keeps some abstraction but not all I think we should
> keep them all for now.

Yeah, e.g. there has been discussions about deferring some warnings until
later so we omit less often false positives about dead code that we optimize
away, and one suggested approach was to represent those warnings as special
debug stmts.  Those would appear in the IL regardless of the
-fvariable-tracking-assignments option, so MAY_HAVE_DEBUG_STMTS could
become
  debug_nonbind_markers_p || flag_var_tracking_assignments || cfun->may_have_warnings
where the last one would be set if we emit any such warning stmts into the
IL.

	Jakub


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-19  8:59   ` Alexandre Oliva
  2021-11-19  9:38     ` Richard Biener
@ 2021-11-19 13:22     ` Martin Liška
  2021-11-19 14:06       ` Richard Biener
  1 sibling, 1 reply; 10+ messages in thread
From: Martin Liška @ 2021-11-19 13:22 UTC (permalink / raw)
  To: Alexandre Oliva, Richard Biener via Gcc-patches

On 11/19/21 09:59, Alexandre Oliva wrote:
> So I find the abstraction useful.  However, I don't have plans to add
> other kinds of debug stmts, and I don't know of anyone else who does, so
> I won't stand in the way if others think removing these abstractions is
> a positive change.

Hello.

I've already installed the patch based on Jeff's approval (and waiting for 24 hours)
as 206b22d021d94adbaa79e1d443c87415254b15de.

Martin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-19 13:22     ` Martin Liška
@ 2021-11-19 14:06       ` Richard Biener
  2021-11-19 14:30         ` Martin Liška
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Biener @ 2021-11-19 14:06 UTC (permalink / raw)
  To: Martin Liška; +Cc: Alexandre Oliva, Richard Biener via Gcc-patches

On Fri, Nov 19, 2021 at 2:22 PM Martin Liška <mliska@suse.cz> wrote:
>
> On 11/19/21 09:59, Alexandre Oliva wrote:
> > So I find the abstraction useful.  However, I don't have plans to add
> > other kinds of debug stmts, and I don't know of anyone else who does, so
> > I won't stand in the way if others think removing these abstractions is
> > a positive change.
>
> Hello.
>
> I've already installed the patch based on Jeff's approval (and waiting for 24 hours)
> as 206b22d021d94adbaa79e1d443c87415254b15de.

Can you please revert it?

> Martin

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS.
  2021-11-19 14:06       ` Richard Biener
@ 2021-11-19 14:30         ` Martin Liška
  0 siblings, 0 replies; 10+ messages in thread
From: Martin Liška @ 2021-11-19 14:30 UTC (permalink / raw)
  To: Richard Biener; +Cc: Alexandre Oliva, Richard Biener via Gcc-patches

On 11/19/21 15:06, Richard Biener wrote:
> Can you please revert it?

Sure, done as 79e9f721d1a6f370ce0534745baeeb5a56da948e.

Martin

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-11-19 14:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-18  8:54 [PATCH] Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS Martin Liška
2021-10-18 10:05 ` Richard Biener
2021-11-12 14:37   ` Martin Liška
2021-11-16  2:21     ` Jeff Law
2021-11-19  8:59   ` Alexandre Oliva
2021-11-19  9:38     ` Richard Biener
2021-11-19  9:44       ` Jakub Jelinek
2021-11-19 13:22     ` Martin Liška
2021-11-19 14:06       ` Richard Biener
2021-11-19 14:30         ` Martin Liška

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).