[PATCH] IPA: use cgraph_node instance

Martin Liška mliska@suse.cz
Thu Nov 18 17:57:56 GMT 2021


Hi.

This is a refactoring I noticed.

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

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

	* ipa-modref.c (analyze_function): Use fnode instead of repeated
	cgraph_node::get (current_function_decl).
---
  gcc/ipa-modref.c | 26 ++++++++++++--------------
  1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c
index c94f0589d44..a3c7c6d6a1f 100644
--- a/gcc/ipa-modref.c
+++ b/gcc/ipa-modref.c
@@ -2870,22 +2870,22 @@ analyze_function (function *f, bool ipa)
  	{
  	  if (dump_file
  	      && (summary
-		  = optimization_summaries->get (cgraph_node::get (f->decl)))
+		  = optimization_summaries->get (fnode))
  		 != NULL
  	      && summary->loads)
  	    {
  	      fprintf (dump_file, "Past summary:\n");
  	      optimization_summaries->get
-		 (cgraph_node::get (f->decl))->dump (dump_file);
+		 (fnode)->dump (dump_file);
  	      past_flags.reserve_exact (summary->arg_flags.length ());
  	      past_flags.splice (summary->arg_flags);
  	      past_retslot_flags = summary->retslot_flags;
  	      past_static_chain_flags = summary->static_chain_flags;
  	      past_flags_known = true;
  	    }
-	  optimization_summaries->remove (cgraph_node::get (f->decl));
+	  optimization_summaries->remove (fnode);
  	}
-      summary = optimization_summaries->get_create (cgraph_node::get (f->decl));
+      summary = optimization_summaries->get_create (fnode);
        gcc_checking_assert (nolto && !lto);
      }
    /* In IPA mode we analyze every function precisely once.  Assert that.  */
@@ -2896,16 +2896,16 @@ analyze_function (function *f, bool ipa)
  	  if (!summaries)
  	    summaries = modref_summaries::create_ggc (symtab);
  	  else
-	    summaries->remove (cgraph_node::get (f->decl));
-	  summary = summaries->get_create (cgraph_node::get (f->decl));
+	    summaries->remove (fnode);
+	  summary = summaries->get_create (fnode);
  	}
        if (lto)
  	{
  	  if (!summaries_lto)
  	    summaries_lto = modref_summaries_lto::create_ggc (symtab);
  	  else
-	    summaries_lto->remove (cgraph_node::get (f->decl));
-	  summary_lto = summaries_lto->get_create (cgraph_node::get (f->decl));
+	    summaries_lto->remove (fnode);
+	  summary_lto = summaries_lto->get_create (fnode);
  	}
        if (!fnspec_summaries)
  	fnspec_summaries = new fnspec_summaries_t (symtab);
@@ -3024,13 +3024,11 @@ analyze_function (function *f, bool ipa)
  	{
  	  if (!summary->loads->every_base && !summary->loads->bases
  	      && !summary->calls_interposable)
-	    fixup_cfg = ipa_make_function_const
-		   (cgraph_node::get (current_function_decl),
-		    summary->side_effects, true);
+	    fixup_cfg = ipa_make_function_const (fnode,
+						 summary->side_effects, true);
  	  else
-	    fixup_cfg = ipa_make_function_pure
-		   (cgraph_node::get (current_function_decl),
-		    summary->side_effects, true);
+	    fixup_cfg = ipa_make_function_pure (fnode,
+						summary->side_effects, true);
  	}
      }
    if (summary && !summary->useful_p (ecf_flags))
-- 
2.33.1



More information about the Gcc-patches mailing list