aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-08-09 09:50:12 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-08-09 07:50:12 +0000
commitfe6c4dc41977ce168ba836010424bd05d104b944 (patch)
tree715e0309c47eb72a65e8da4ab95868a1e9f94564
parentc220ecd21b11575cdfb53d64f3c7e850fede78a9 (diff)
downloadgcc-fe6c4dc41977ce168ba836010424bd05d104b944.zip
gcc-fe6c4dc41977ce168ba836010424bd05d104b944.tar.gz
gcc-fe6c4dc41977ce168ba836010424bd05d104b944.tar.bz2
Implement -fopt-info support for IPA ICF.
2019-08-09 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and use dump_printf to report optimization. (sem_variable::merge): Likwise. (sem_item_optimizer::merge_classes): Use dump_printf to report ICF hits. 2019-08-09 Martin Liska <mliska@suse.cz> * g++.dg/ipa/ipa-icf-2.C: Add -optimized to -fdump-ipa-icf. * g++.dg/ipa/ipa-icf-3.C: Likewise. * g++.dg/ipa/ipa-icf-4.C: Likewise. * g++.dg/ipa/ipa-icf-6.C: Likewise. * gcc.dg/ipa/ipa-icf-1.c: Likewise. * gcc.dg/ipa/ipa-icf-10.c: Likewise. * gcc.dg/ipa/ipa-icf-11.c: Likewise. * gcc.dg/ipa/ipa-icf-12.c: Likewise. * gcc.dg/ipa/ipa-icf-13.c: Likewise. * gcc.dg/ipa/ipa-icf-16.c: Likewise. * gcc.dg/ipa/ipa-icf-18.c: Likewise. * gcc.dg/ipa/ipa-icf-2.c: Likewise. * gcc.dg/ipa/ipa-icf-20.c: Likewise. * gcc.dg/ipa/ipa-icf-21.c: Likewise. * gcc.dg/ipa/ipa-icf-23.c: Likewise. * gcc.dg/ipa/ipa-icf-25.c: Likewise. * gcc.dg/ipa/ipa-icf-26.c: Likewise. * gcc.dg/ipa/ipa-icf-27.c: Likewise. * gcc.dg/ipa/ipa-icf-3.c: Likewise. * gcc.dg/ipa/ipa-icf-35.c: Likewise. * gcc.dg/ipa/ipa-icf-36.c: Likewise. * gcc.dg/ipa/ipa-icf-37.c: Likewise. * gcc.dg/ipa/ipa-icf-38.c: Likewise. * gcc.dg/ipa/ipa-icf-39.c: Likewise. * gcc.dg/ipa/ipa-icf-5.c: Likewise. * gcc.dg/ipa/ipa-icf-7.c: Likewise. * gcc.dg/ipa/ipa-icf-8.c: Likewise. * gcc.dg/ipa/ipa-icf-merge-1.c: Likewise. * gcc.dg/ipa/pr64307.c: Likewise. * gcc.dg/ipa/pr90555.c: Likewise. From-SVN: r274230
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/ipa-icf.c208
-rw-r--r--gcc/testsuite/ChangeLog33
-rw-r--r--gcc/testsuite/g++.dg/ipa/ipa-icf-2.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/ipa-icf-3.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/ipa-icf-4.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/ipa-icf-6.C2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/pr64307.c2
-rw-r--r--gcc/testsuite/gcc.dg/ipa/pr90555.c2
33 files changed, 185 insertions, 124 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b8d54e1..21652c8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2019-08-09 Martin Liska <mliska@suse.cz>
+ * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
+ use dump_printf to report optimization.
+ (sem_variable::merge): Likwise.
+ (sem_item_optimizer::merge_classes): Use dump_printf to report
+ ICF hits.
+
+2019-08-09 Martin Liska <mliska@suse.cz>
+
* value-prof.c (gimple_divmod_fixed_value_transform):
Use dump_printf_loc.
(gimple_mod_pow2_value_transform): Likewise.
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 13e63b7..c9c3cb4 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -1024,20 +1024,23 @@ sem_function::merge (sem_item *alias_item)
bool original_address_matters = original->address_matters_p ();
bool alias_address_matters = alias->address_matters_p ();
+ AUTO_DUMP_SCOPE ("merge",
+ dump_user_location_t::from_function_decl (decl));
+
if (DECL_EXTERNAL (alias->decl))
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; alias is external.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; alias is external.\n");
return false;
}
if (DECL_NO_INLINE_WARNING_P (original->decl)
!= DECL_NO_INLINE_WARNING_P (alias->decl))
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; "
- "DECL_NO_INLINE_WARNING mismatch.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; DECL_NO_INLINE_WARNING mismatch.\n");
return false;
}
@@ -1047,21 +1050,20 @@ sem_function::merge (sem_item *alias_item)
|| (DECL_SECTION_NAME (alias->decl) && !alias->implicit_section))
&& DECL_SECTION_NAME (original->decl) != DECL_SECTION_NAME (alias->decl))
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; "
- "original and alias are in different sections.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; "
+ "original and alias are in different sections.\n");
return false;
}
if (!original->in_same_comdat_group_p (alias)
|| original->comdat_local_p ())
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; alias nor wrapper cannot be created; "
- "across comdat group boundary\n\n");
-
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; alias nor wrapper cannot be created; "
+ "across comdat group boundary\n");
return false;
}
@@ -1106,10 +1108,10 @@ sem_function::merge (sem_item *alias_item)
if (!sem_item::compare_referenced_symbol_properties (NULL, original, alias,
alias->address_taken))
{
- if (dump_file)
- fprintf (dump_file,
- "Wrapper cannot be created because referenced symbol "
- "properties mismatch\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Wrapper cannot be created because referenced symbol "
+ "properties mismatch\n");
}
/* Do not turn function in one comdat group into wrapper to another
comdat group. Other compiler producing the body of the
@@ -1120,40 +1122,41 @@ sem_function::merge (sem_item *alias_item)
&& (DECL_COMDAT_GROUP (alias->decl)
!= DECL_COMDAT_GROUP (original->decl)))
{
- if (dump_file)
- fprintf (dump_file,
- "Wrapper cannot be created because of COMDAT\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Wrapper cannot be created because of COMDAT\n");
}
else if (DECL_STATIC_CHAIN (alias->decl)
|| DECL_STATIC_CHAIN (original->decl))
{
- if (dump_file)
- fprintf (dump_file,
- "Cannot create wrapper of nested function.\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Cannot create wrapper of nested function.\n");
}
/* TODO: We can also deal with variadic functions never calling
VA_START. */
else if (stdarg_p (TREE_TYPE (alias->decl)))
{
- if (dump_file)
- fprintf (dump_file,
- "cannot create wrapper of stdarg function.\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "cannot create wrapper of stdarg function.\n");
}
else if (ipa_fn_summaries
&& ipa_fn_summaries->get (alias) != NULL
&& ipa_fn_summaries->get (alias)->self_size <= 2)
{
- if (dump_file)
- fprintf (dump_file, "Wrapper creation is not "
- "profitable (function is too small).\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION, "Wrapper creation is not "
+ "profitable (function is too small).\n");
}
/* If user paid attention to mark function noinline, assume it is
somewhat special and do not try to turn it into a wrapper that
cannot be undone by inliner. */
else if (lookup_attribute ("noinline", DECL_ATTRIBUTES (alias->decl)))
{
- if (dump_file)
- fprintf (dump_file, "Wrappers are not created for noinline.\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Wrappers are not created for noinline.\n");
}
else
create_wrapper = true;
@@ -1171,9 +1174,10 @@ sem_function::merge (sem_item *alias_item)
if (!redirect_callers && !create_wrapper)
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; cannot redirect callers nor "
- "produce wrapper\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; cannot redirect callers nor "
+ "produce wrapper\n");
return false;
}
@@ -1202,17 +1206,18 @@ sem_function::merge (sem_item *alias_item)
redirect_callers = false;
if (!local_original)
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; "
- "cannot produce local alias.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; cannot produce local alias.\n");
return false;
}
if (!redirect_callers && !create_wrapper)
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; "
- "cannot redirect callers nor produce a wrapper\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; "
+ "cannot redirect callers nor produce a wrapper\n");
return false;
}
if (!create_wrapper
@@ -1220,9 +1225,10 @@ sem_function::merge (sem_item *alias_item)
NULL, true)
&& !alias->can_remove_if_no_direct_calls_p ())
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; cannot make wrapper and "
- "function has other uses than direct calls\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; cannot make wrapper and "
+ "function has other uses than direct calls\n");
return false;
}
}
@@ -1238,9 +1244,10 @@ sem_function::merge (sem_item *alias_item)
alias->icf_merged = true;
local_original->icf_merged = true;
- if (dump_file && nredirected)
- fprintf (dump_file, "%i local calls have been "
- "redirected.\n", nredirected);
+ if (dump_enabled_p ())
+ dump_printf (MSG_NOTE,
+ "%i local calls have been "
+ "redirected.\n", nredirected);
}
/* If all callers was redirected, do not produce wrapper. */
@@ -1272,8 +1279,9 @@ sem_function::merge (sem_item *alias_item)
original->call_for_symbol_thunks_and_aliases
(set_local, (void *)(size_t) original->local_p (), true);
- if (dump_file)
- fprintf (dump_file, "Unified; Function alias has been created.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ "Unified; Function alias has been created.\n");
}
if (create_wrapper)
{
@@ -1285,8 +1293,9 @@ sem_function::merge (sem_item *alias_item)
ipa_merge_profiles (original, alias, true);
alias->create_wrapper (local_original);
- if (dump_file)
- fprintf (dump_file, "Unified; Wrapper has been created.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ "Unified; Wrapper has been created.\n");
}
/* It's possible that redirection can hit thunks that block
@@ -1299,8 +1308,8 @@ sem_function::merge (sem_item *alias_item)
on this optimization. */
if (original->merged_comdat && !alias->merged_comdat)
{
- if (dump_file)
- fprintf (dump_file, "Dropping merged_comdat flag.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_NOTE, "Dropping merged_comdat flag.\n");
if (local_original)
local_original->merged_comdat = false;
original->merged_comdat = false;
@@ -1313,8 +1322,9 @@ sem_function::merge (sem_item *alias_item)
alias->reset ();
alias->body_removed = true;
alias->icf_merged = true;
- if (dump_file)
- fprintf (dump_file, "Unified; Function body was removed.\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ "Unified; Function body was removed.\n");
}
return true;
@@ -2085,18 +2095,21 @@ sem_variable::merge (sem_item *alias_item)
{
gcc_assert (alias_item->type == VAR);
+ AUTO_DUMP_SCOPE ("merge",
+ dump_user_location_t::from_function_decl (decl));
if (!sem_item::target_supports_symbol_aliases_p ())
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; "
- "Symbol aliases are not supported by target\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION, "Not unifying; "
+ "Symbol aliases are not supported by target\n");
return false;
}
if (DECL_EXTERNAL (alias_item->decl))
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; alias is external.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; alias is external.\n");
return false;
}
@@ -2128,9 +2141,9 @@ sem_variable::merge (sem_item *alias_item)
if (DECL_IN_CONSTANT_POOL (alias->decl)
|| DECL_IN_CONSTANT_POOL (original->decl))
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; constant pool variables.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; constant pool variables.\n");
return false;
}
@@ -2140,45 +2153,48 @@ sem_variable::merge (sem_item *alias_item)
|| (DECL_SECTION_NAME (alias->decl) && !alias->implicit_section))
&& DECL_SECTION_NAME (original->decl) != DECL_SECTION_NAME (alias->decl))
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; "
- "original and alias are in different sections.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; "
+ "original and alias are in different sections.\n");
return false;
}
/* We cannot merge if address comparsion metters. */
if (alias_address_matters && flag_merge_constants < 2)
{
- if (dump_file)
- fprintf (dump_file,
- "Not unifying; address of original may be compared.\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; address of original may be compared.\n");
return false;
}
if (DECL_ALIGN (original->decl) < DECL_ALIGN (alias->decl))
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; "
- "original and alias have incompatible alignments\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; "
+ "original and alias have incompatible alignments\n");
return false;
}
if (DECL_COMDAT_GROUP (original->decl) != DECL_COMDAT_GROUP (alias->decl))
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; alias cannot be created; "
- "across comdat group boundary\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; alias cannot be created; "
+ "across comdat group boundary\n");
return false;
}
if (original_discardable)
{
- if (dump_file)
- fprintf (dump_file, "Not unifying; alias cannot be created; "
- "target is discardable\n\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_MISSED_OPTIMIZATION,
+ "Not unifying; alias cannot be created; "
+ "target is discardable\n");
return false;
}
@@ -2199,8 +2215,9 @@ sem_variable::merge (sem_item *alias_item)
varpool_node::create_alias (alias_var->decl, decl);
alias->resolve_alias (original);
- if (dump_file)
- fprintf (dump_file, "Unified; Variable alias has been created.\n");
+ if (dump_enabled_p ())
+ dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ "Unified; Variable alias has been created.\n");
return true;
}
@@ -3477,23 +3494,26 @@ sem_item_optimizer::merge_classes (unsigned int prev_class_count)
if (alias == source)
continue;
- if (dump_file)
+ dump_user_location_t loc
+ = dump_user_location_t::from_function_decl (source->decl);
+ if (dump_enabled_p ())
{
- fprintf (dump_file, "Semantic equality hit:%s->%s\n",
- xstrdup_for_dump (source->node->name ()),
- xstrdup_for_dump (alias->node->name ()));
- fprintf (dump_file, "Assembler symbol names:%s->%s\n",
- xstrdup_for_dump (source->node->asm_name ()),
- xstrdup_for_dump (alias->node->asm_name ()));
+ dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ "Semantic equality hit:%s->%s\n",
+ xstrdup_for_dump (source->node->name ()),
+ xstrdup_for_dump (alias->node->name ()));
+ dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ "Assembler symbol names:%s->%s\n",
+ xstrdup_for_dump (source->node->asm_name ()),
+ xstrdup_for_dump (alias->node->asm_name ()));
}
if (lookup_attribute ("no_icf", DECL_ATTRIBUTES (alias->decl)))
{
- if (dump_file)
- fprintf (dump_file,
- "Merge operation is skipped due to no_icf "
- "attribute.\n\n");
-
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ "Merge operation is skipped due to no_icf "
+ "attribute.\n");
continue;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e64565e..73022f3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,38 @@
2019-08-09 Martin Liska <mliska@suse.cz>
+ * g++.dg/ipa/ipa-icf-2.C: Add -optimized to -fdump-ipa-icf.
+ * g++.dg/ipa/ipa-icf-3.C: Likewise.
+ * g++.dg/ipa/ipa-icf-4.C: Likewise.
+ * g++.dg/ipa/ipa-icf-6.C: Likewise.
+ * gcc.dg/ipa/ipa-icf-1.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-10.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-11.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-12.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-13.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-16.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-18.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-2.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-20.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-21.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-23.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-25.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-26.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-27.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-3.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-35.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-36.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-37.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-38.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-39.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-5.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-7.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-8.c: Likewise.
+ * gcc.dg/ipa/ipa-icf-merge-1.c: Likewise.
+ * gcc.dg/ipa/pr64307.c: Likewise.
+ * gcc.dg/ipa/pr90555.c: Likewise.
+
+2019-08-09 Martin Liska <mliska@suse.cz>
+
* g++.dg/tree-prof/indir-call-prof.C: Add -optimize
to -fdump-ipa-profile.
* g++.dg/tree-prof/morefunc.C: Likewise.
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C b/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
index 9e78006..7f56189 100644
--- a/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
class A
{
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-3.C b/gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
index 4747b30..5a3cca2 100644
--- a/gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
__attribute__ ((noinline))
int zero()
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-4.C b/gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
index b552ef4..8695405 100644
--- a/gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf -fno-inline" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized -fno-inline" } */
namespace {
struct A
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-6.C b/gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
index d7650e4..7bcb9dc 100644
--- a/gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O3 -fdump-ipa-icf" } */
+/* { dg-options "-O3 -fdump-ipa-icf-optimized" } */
struct A {
A() {ptr=&b;}
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c
index a3d8858..8cb9186 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c
index 5f76c1d..8fdac38 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
int ferda(int x, int y) __attribute__ ((pure));
int funkce(int a, int b) __attribute__ ((pure));
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c
index 2610af9..dbc0cbe 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
__attribute__ ((noinline))
int fce(int a, int b)
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c
index 8e4aa56..7ed75f8 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdlib.h>
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c
index 09d817c..d58f182 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized-all-all" } */
#include <stdlib.h>
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c
index a2613af..b11cae0 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c
index e246c2b..7753e1e 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
__attribute__ ((noinline))
int foo(int x)
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c
index 983e3d8..e6e165a 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c
index 46dc704..42e9ce9 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <math.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
index a20b4a4..ea7164c 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O2 -msse2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -msse2 -fdump-ipa-icf-optimized" } */
#include <xmmintrin.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c
index 02bb138..805a406 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
struct A
{
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c
index 4b364eb..5b963a8 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized-all" } */
static int zip();
static int zap();
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c
index 325ece1..42c5386 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
void destroy (void)
{
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c
index bc49e58..a2ce86a 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf -fno-inline" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized -fno-inline" } */
void destroy (void)
{
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c
index 2ecab23..8d83a28 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
typedef int v4si __attribute__ ((vector_size (16)));
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
index d194f91..03bac84 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized-all-all" } */
void f1()
{
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
index 5d125d0..e630b6d 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf -fmerge-all-constants" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized-all-all-all-all -fmerge-all-constants" } */
static int a;
static int b;
static const int c = 2;
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
index 5c02e8e..e482bd2 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized-all-all-all-all" } */
static int a;
static int b;
static const int c = 2;
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
index 788038a..b9aea90 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c
@@ -1,5 +1,5 @@
/* { dg-do link } */
-/* { dg-options "-O2 -fdump-ipa-icf -flto -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized -flto -fdump-tree-optimized" } */
/* { dg-require-effective-target lto } */
/* { dg-additional-sources "ipa-icf-38a.c" }*/
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
index a60721f..83ccd20 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-require-alias "" } */
-/* { dg-options "-O2 -fdump-ipa-icf -fmerge-all-constants -fdbg-cnt=merged_ipa_icf:1:3" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized -fmerge-all-constants -fdbg-cnt=merged_ipa_icf:1:3" } */
/* { dg-prune-output "dbg_cnt 'merged_ipa_icf' set to 1-3" } */
/* { dg-prune-output "\\*\\*\\*dbgcnt:.*limit.*reached" } */
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c
index b2d48f9..40d7174 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target c99_runtime } } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
/* { dg-add-options c99_runtime } */
#include <complex.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c
index 488e133..87a6d26 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target c99_runtime } } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
/* { dg-add-options c99_runtime } */
#include <complex.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c
index 8ee46d0..fe95c2c 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-icf" } */
+/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c b/gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c
index 06958a4..f96e8e8 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-merge-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-additional-options "-O2 -fdump-ipa-icf" } */
+/* { dg-additional-options "-O2 -fdump-ipa-icf-optimized" } */
/* Picking 'main' as a candiate target for equivalent functios is not a
good idea. */
diff --git a/gcc/testsuite/gcc.dg/ipa/pr64307.c b/gcc/testsuite/gcc.dg/ipa/pr64307.c
index 79d93af..e2c9121 100644
--- a/gcc/testsuite/gcc.dg/ipa/pr64307.c
+++ b/gcc/testsuite/gcc.dg/ipa/pr64307.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target c99_runtime } } */
-/* { dg-options "-O0 -fipa-icf -fdump-ipa-icf" } */
+/* { dg-options "-O0 -fipa-icf -fdump-ipa-icf-optimized" } */
#include <complex.h>
diff --git a/gcc/testsuite/gcc.dg/ipa/pr90555.c b/gcc/testsuite/gcc.dg/ipa/pr90555.c
index 327cff9..d357405 100644
--- a/gcc/testsuite/gcc.dg/ipa/pr90555.c
+++ b/gcc/testsuite/gcc.dg/ipa/pr90555.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fopenmp-simd -O2 -mavx512f -fdump-ipa-icf" } */
+/* { dg-options "-fopenmp-simd -O2 -mavx512f -fdump-ipa-icf-optimized" } */
#define N 1024
int a[N];