[Bug tree-optimization/90316] [8/9 Regression] large compile time increase in opt / alias stmt walking for Go example

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 10 10:10:00 GMT 2019


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

--- Comment #27 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 46337
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46337&action=edit
untested patch

So this is another patch adjusting PRE insertion to only iterate when necessary
(well, I think it should be never necessary to iterate...).  That said, it
strips iteration down to a minimum (still supporting the notion that iteration
is necessary at all).  I wonder if iteration in the end is really only
because of the sorting order issue, thus if the patch doesn't help, can you
try changing the hunk

@@ -3326,6 +3331,10 @@ do_pre_regular_insertion (basic_block bl
            }
        }
     }
+  /* ???  Imperfect sorting of expressions means we have to iterate here.
+     For example gcc.dg/tree-ssa/pr23455.c shows a dependent memory
+     load cannot be inserted as part of a computation.  */
+  } while (old_trans_fails != trans_fails);

   exprs.release ();
   return new_stuff;

to never loop and try again?  (this particular looping is a hack
implementation-wise and probably can be improved or even avoided)


More information about the Gcc-bugs mailing list