Hi,
this patch fixes ordering issue that prevents ipa-reference folding with LTO
Bootstrapped/regtested x86_64-linux, comitted.

Honza

        PR tree-optimization/63255
        * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
        issue in setting body_removed flag.
Index: ipa.c
===================================================================
--- ipa.c       (revision 215409)
+++ ipa.c       (working copy)
@@ -538,6 +538,11 @@
                fprintf (file, " %s", vnode->name ());
              changed = true;
            }
+         /* Keep body if it may be useful for constant folding.  */
+         if ((init = ctor_for_folding (vnode->decl)) == error_mark_node)
+           vnode->remove_initializer ();
+         else
+           DECL_INITIAL (vnode->decl) = init;
          vnode->body_removed = true;
          vnode->definition = false;
          vnode->analyzed = false;
@@ -545,11 +550,6 @@
 
          vnode->remove_from_same_comdat_group ();
 
-         /* Keep body if it may be useful for constant folding.  */
-         if ((init = ctor_for_folding (vnode->decl)) == error_mark_node)
-           vnode->remove_initializer ();
-         else
-           DECL_INITIAL (vnode->decl) = init;
          vnode->remove_all_references ();
        }
       else

Reply via email to