On Fri, Sep 15, 2017 at 12:49 PM, Richard Biener <richard.guent...@gmail.com> wrote: > On Thu, Sep 14, 2017 at 5:02 PM, Bin Cheng <bin.ch...@arm.com> wrote: >> Hi, >> Current pcom implementation rewrites into lcssa form after all loops are >> transformed, this is >> not enough because unrolling of later loop checks lcssa form in function >> tree_transform_and_unroll_loop. >> This simple patch rewrites loop into lcssa form if store-store chain is >> handled. I think it doesn't >> affect compilation time since rewrite_into_loop_closed_ssa_1 is only called >> for store-store chain >> transformation and only the transformed loop is rewritten. > > Well, it may look like only the transformed loop is rewritten -- yes, > it is, but rewrite_into_loop_closed_ssa > calls update_ssa () which operates on the whole function. I see. > > So I'd rather _not_ do this. > > Is there a real problem or is it just the overly aggressive checking > done? IMHO we should remove In this case, it's the check itself. > the checking or pass in a param whether to skip the checking. Or even > better, restrict the > checking to those loops trans_form_and_unroll actually touches. Yes, will see if we can check loops only related to trans_form_and_unroll.
Thanks, bin > > Richard. > >> Bootstrap and test ongoing on x86_64. is it OK if no failures? >> >> Thanks, >> bin >> 2017-09-14 Bin Cheng <bin.ch...@arm.com> >> >> PR tree-optimization/82163 >> * tree-predcom.c (tree_predictive_commoning_loop): Rewrite into >> loop closed ssa instantly. Return boolean true if loop is unrolled. >> (tree_predictive_commoning): Return TODO_cleanup_cfg if loop is >> unrolled. >> >> gcc/testsuite >> 2017-09-14 Bin Cheng <bin.ch...@arm.com> >> >> PR tree-optimization/82163 >> * gcc.dg/tree-ssa/pr82163.c: New test.