[Bug tree-optimization/84552] [8 Regression] Compile time hog w/ -O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 27 13:58:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84552

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Probably related to us doing SCEV analysis w/o updating SSA form but
follow_copies_to_constant and degenerate_phi_result not honoring that.
The following would fix this:

Index: gcc/tree-scalar-evolution.c
===================================================================
--- gcc/tree-scalar-evolution.c (revision 258030)
+++ gcc/tree-scalar-evolution.c (working copy)
@@ -280,6 +280,7 @@ along with GCC; see the file COPYING3.
 #include "params.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
+#include "tree-into-ssa.h"

 static tree analyze_scalar_evolution_1 (struct loop *, tree);
 static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
@@ -1545,7 +1546,9 @@ follow_copies_to_constant (tree var)
       gimple *def = SSA_NAME_DEF_STMT (res);
       if (gphi *phi = dyn_cast <gphi *> (def))
        {
-         if (tree rhs = degenerate_phi_result (phi))
+         if (name_registered_for_update_p (gimple_phi_result (phi)))
+           break;
+         else if (tree rhs = degenerate_phi_result (phi))
            res = rhs;
          else
            break;


More information about the Gcc-bugs mailing list