aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2021-11-26 13:54:41 +0100
committerJan Hubicka <jh@suse.cz>2021-11-26 13:54:41 +0100
commit2cadaa1f134beca5ec63544f185362c223bab590 (patch)
tree78cb436b98978e0bcb588cec13d9d6b514e29d41 /gcc
parent906cad89b390f7b471c0558c5770fc720bab2b1d (diff)
downloadgcc-2cadaa1f134beca5ec63544f185362c223bab590.zip
gcc-2cadaa1f134beca5ec63544f185362c223bab590.tar.gz
gcc-2cadaa1f134beca5ec63544f185362c223bab590.tar.bz2
Minor ipa-modref tweaks
To make dumps easier to read modref now dumps cgraph_node name rather then cfun name in function being analysed and I also fixed minor issue with ECF flags merging when updating inline summary. gcc/ChangeLog: 2021-11-26 Jan Hubicka <hubicka@ucw.cz> * ipa-modref.c (analyze_function): Drop parameter F and dump cgraph node name rather than cfun name. (modref_generate): Update. (modref_summaries::insert):Update. (modref_summaries_lto::insert):Update. (pass_modref::execute):Update. (ipa_merge_modref_summary_after_inlining): Improve combining of ECF_FLAGS.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ipa-modref.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c
index 2f52d41..9e537b0 100644
--- a/gcc/ipa-modref.c
+++ b/gcc/ipa-modref.c
@@ -2943,17 +2943,17 @@ analyze_parms (modref_summary *summary, modref_summary_lto *summary_lto,
}
}
-/* Analyze function F. IPA indicates whether we're running in local mode
+/* Analyze function. IPA indicates whether we're running in local mode
(false) or the IPA mode (true).
Return true if fixup cfg is needed after the pass. */
static bool
-analyze_function (function *f, bool ipa)
+analyze_function (bool ipa)
{
bool fixup_cfg = false;
if (dump_file)
- fprintf (dump_file, "modref analyzing '%s' (ipa=%i)%s%s\n",
- function_name (f), ipa,
+ fprintf (dump_file, "\n\nmodref analyzing '%s' (ipa=%i)%s%s\n",
+ cgraph_node::get (current_function_decl)->dump_name (), ipa,
TREE_READONLY (current_function_decl) ? " (const)" : "",
DECL_PURE_P (current_function_decl) ? " (pure)" : "");
@@ -3224,7 +3224,7 @@ modref_generate (void)
if (!f)
continue;
push_cfun (f);
- analyze_function (f, true);
+ analyze_function (true);
pop_cfun ();
}
}
@@ -3257,7 +3257,7 @@ modref_summaries::insert (struct cgraph_node *node, modref_summary *)
return;
}
push_cfun (DECL_STRUCT_FUNCTION (node->decl));
- analyze_function (DECL_STRUCT_FUNCTION (node->decl), true);
+ analyze_function (true);
pop_cfun ();
}
@@ -3277,7 +3277,7 @@ modref_summaries_lto::insert (struct cgraph_node *node, modref_summary_lto *)
return;
}
push_cfun (DECL_STRUCT_FUNCTION (node->decl));
- analyze_function (DECL_STRUCT_FUNCTION (node->decl), true);
+ analyze_function (true);
pop_cfun ();
}
@@ -4032,9 +4032,9 @@ public:
}
-unsigned int pass_modref::execute (function *f)
+unsigned int pass_modref::execute (function *)
{
- if (analyze_function (f, false))
+ if (analyze_function (false))
return execute_fixup_cfg ();
return 0;
}
@@ -5106,8 +5106,10 @@ ipa_merge_modref_summary_after_inlining (cgraph_edge *edge)
= summaries_lto ? summaries_lto->get (edge->callee) : NULL;
int flags = flags_from_decl_or_type (edge->callee->decl);
/* Combine in outer flags. */
- for (cgraph_node *n = edge->caller; n->inlined_to; n = n->callers->caller)
- flags |= flags_from_decl_or_type (edge->callee->decl);
+ cgraph_node *n;
+ for (n = edge->caller; n->inlined_to; n = n->callers->caller)
+ flags |= flags_from_decl_or_type (n->decl);
+ flags |= flags_from_decl_or_type (n->decl);
bool ignore_stores = ignore_stores_p (edge->caller->decl, flags);
if (!callee_info && to_info)