aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Ploujnikov <michael.ploujnikov@oracle.com>2018-12-04 14:22:09 +0000
committerMichael Ploujnikov <plouj@gcc.gnu.org>2018-12-04 14:22:09 +0000
commit9e0b0ec3aa447a33c45f9916116b9b597ce7061c (patch)
tree78997324642dba4c59d796514ddb4ad3009e31d1 /gcc
parent0232f69fa23bfe5d51535ef20730200430cb567f (diff)
downloadgcc-9e0b0ec3aa447a33c45f9916116b9b597ce7061c.zip
gcc-9e0b0ec3aa447a33c45f9916116b9b597ce7061c.tar.gz
gcc-9e0b0ec3aa447a33c45f9916116b9b597ce7061c.tar.bz2
re PR lto/88297 (Assembler Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined)
PR ipa/88297 * ipa-cp.c (create_specialized_node): Track clone counters by node assembler names. (ipcp_driver): Change type of clone_num_suffixes key to const char*. From-SVN: r266780
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/ipa-cp.c10
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a4d0c7c..ea8680a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-12-04 Michael Ploujnikov <michael.ploujnikov@oracle.com>
+
+ PR ipa/88297
+ * ipa-cp.c (create_specialized_node): Track clone counters by
+ node assembler names.
+ (ipcp_driver): Change type of clone_num_suffixes key to const
+ char*.
+
2018-12-04 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 84ca688..c7c462a 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -376,8 +376,8 @@ static profile_count max_count;
static long overall_size, max_new_size;
-/* Node to unique clone suffix number map. */
-static hash_map<cgraph_node *, unsigned> *clone_num_suffixes;
+/* Node name to unique clone suffix number map. */
+static hash_map<const char *, unsigned> *clone_num_suffixes;
/* Return the param lattices structure corresponding to the Ith formal
parameter of the function described by INFO. */
@@ -3832,7 +3832,9 @@ create_specialized_node (struct cgraph_node *node,
}
}
- unsigned &suffix_counter = clone_num_suffixes->get_or_insert (node);
+ unsigned &suffix_counter = clone_num_suffixes->get_or_insert (
+ IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (
+ node->decl)));
new_node = node->create_virtual_clone (callers, replace_trees,
args_to_skip, "constprop",
suffix_counter);
@@ -5050,7 +5052,7 @@ ipcp_driver (void)
ipa_check_create_node_params ();
ipa_check_create_edge_args ();
- clone_num_suffixes = new hash_map<cgraph_node *, unsigned>;
+ clone_num_suffixes = new hash_map<const char *, unsigned>;
if (dump_file)
{