diff options
author | Michael Ploujnikov <michael.ploujnikov@oracle.com> | 2018-12-04 14:22:09 +0000 |
---|---|---|
committer | Michael Ploujnikov <plouj@gcc.gnu.org> | 2018-12-04 14:22:09 +0000 |
commit | 9e0b0ec3aa447a33c45f9916116b9b597ce7061c (patch) | |
tree | 78997324642dba4c59d796514ddb4ad3009e31d1 /gcc | |
parent | 0232f69fa23bfe5d51535ef20730200430cb567f (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ipa-cp.c | 10 |
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) { |