Hi,
I had this patch sitting in my tree for a while, but somehow forgot to commit 
it.
The issue here is that edge redirection affects vops and thus imply need for
SSA update in some cases.

Bootstrapped/regtested x86_64-linux, will commit it shortly.
        PR middle-end/48836
        * ipa-inline-transform.c: Include tree-pass.h
        (inline_transform): Set TODO_update_ssa_only_virtuals.
        * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
Index: ipa-inline-transform.c
===================================================================
--- ipa-inline-transform.c      (revision 174958)
+++ ipa-inline-transform.c      (working copy)
@@ -45,6 +45,7 @@ along with GCC; see the file COPYING3.  
 #include "ipa-prop.h"
 #include "ipa-inline.h"
 #include "tree-inline.h"
+#include "tree-pass.h"
 
 int ncalls_inlined;
 int nfunctions_inlined;
@@ -338,6 +339,8 @@ inline_transform (struct cgraph_node *no
       cgraph_redirect_edge_call_stmt_to_callee (e);
       if (!e->inline_failed || warn_inline)
         inline_p = true;
+      /* Redirecting edges might lead to a need for vops to be recomputed.  */
+      todo |= TODO_update_ssa_only_virtuals;
     }
 
   if (inline_p)
Index: Makefile.in
===================================================================
--- Makefile.in (revision 174958)
+++ Makefile.in (working copy)
@@ -3087,7 +3087,7 @@ ipa-inline-transform.o : ipa-inline-tran
    $(TREE_H) langhooks.h $(TREE_INLINE_H) $(FLAGS_H) $(CGRAPH_H) intl.h \
    $(DIAGNOSTIC_H) $(PARAMS_H) $(TIMEVAR_H) $(TREE_PASS_H) \
    $(HASHTAB_H) $(COVERAGE_H) $(GGC_H) $(TREE_FLOW_H) $(IPA_PROP_H) \
-   gimple-pretty-print.h ipa-inline.h $(LTO_STREAMER_H)
+   gimple-pretty-print.h ipa-inline.h $(LTO_STREAMER_H) tree-pass.h
 ipa-utils.o : ipa-utils.c $(IPA_UTILS_H) $(CONFIG_H) $(SYSTEM_H) \
    coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
    pointer-set.h $(GGC_H) $(GIMPLE_H) $(SPLAY_TREE_H) \

Reply via email to