re PR lto/88297 (Assembler Error: symbol `_Z41__static_initialization_and_destruction...
authorMichael Ploujnikov <michael.ploujnikov@oracle.com>
Tue, 4 Dec 2018 14:22:09 +0000 (14:22 +0000)
committerMichael Ploujnikov <plouj@gcc.gnu.org>
Tue, 4 Dec 2018 14:22:09 +0000 (14:22 +0000)
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

gcc/ChangeLog
gcc/ipa-cp.c

index a4d0c7c82556e4ec8ebed7af2069f71e922731ef..ea8680a13804e0e9ccd3fa000d7f596d1c613766 100644 (file)
@@ -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
index 84ca688fce3d9b04d49bc74e3ce200a78f1bf4a2..c7c462ab816352bd61e584e3da4008d3befadf43 100644 (file)
@@ -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)
     {