[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2021-07-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 Andrew Pinski changed: What|Removed |Added CC||xinliangli at gmail dot com --- Comment

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2016-08-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2016-08-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #31 from Richard Biener --- Author: rguenth Date: Wed Aug 17 08:11:32 2016 New Revision: 239523 URL: https://gcc.gnu.org/viewcvs?rev=239523=gcc=rev Log: 2016-08-17 Richard Biener PR

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2016-08-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 Richard Biener changed: What|Removed |Added CC||ysrumyan at gmail dot com --- Comment

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2016-08-13 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #29 from Andrew Pinski --- We unswitch on the outer loops now in GCC 6 and above. So can we consider this as fixed? The code for aarch64-linux-gnu on the trunk looks like: .L3: mov w19, 0 .p2align 3 .L4:

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2014-02-05 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #27 from Richard Biener rguenth at gcc dot gnu.org --- Some more TLC to be applied before it's ready for prime time (and obviously testing). Eventually integrating with LIM sounds better?

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2014-02-05 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Attachment #11231|0 |1 is

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2014-02-05 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #28 from Richard Biener rguenth at gcc dot gnu.org --- Created attachment 32051 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32051action=edit updated patch Slight update to apply all possible hoists to PR60042.

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2012-12-07 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added CC|

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2011-10-20 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #24 from rguenther at suse dot de rguenther at suse dot de 2011-10-20 07:43:44 UTC --- On Wed, 19 Oct 2011, pinskia at gcc dot gnu.org wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #23 from Andrew Pinski

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2011-10-19 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855 --- Comment #23 from Andrew Pinski pinskia at gcc dot gnu.org 2011-10-19 19:10:38 UTC --- The other way to handle this is to allow unswitch loops to handle non inner loops which from what I can tell is a two line patch.

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-10-24 Thread rguenth at gcc dot gnu dot org
--- Comment #20 from rguenth at gcc dot gnu dot org 2006-10-24 13:56 --- So, where do we want to go? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-10-24 Thread rakdver at gcc dot gnu dot org
--- Comment #21 from rakdver at gcc dot gnu dot org 2006-10-24 13:58 --- (In reply to comment #20) So, where do we want to go? Unless the basic patch is approved (which did not happen so far, despite of several pings), I do not know. I will try to resend the patch, perhaps that

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-10-24 Thread dberlin at gcc dot gnu dot org
--- Comment #22 from dberlin at gcc dot gnu dot org 2006-10-24 14:23 --- (In reply to comment #19) So it is indeed chicken and egg ;) load-PRE does not PRE the loads if the loop is not in do-while form, and we won't hoist the loop header copies until the loads are PREd. As to

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-10 Thread rguenther at suse dot de
--- Comment #17 from rguenther at suse dot de 2006-04-10 08:10 --- Subject: Re: loop header should also be pulled out of the inner loop too On Mon, 9 Apr 2006, rakdver at gcc dot gnu dot org wrote: (In reply to comment #14) (In reply to comment #11) I updated the patch for

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-10 Thread rakdver at atrey dot karlin dot mff dot cuni dot cz
--- Comment #18 from rakdver at atrey dot karlin dot mff dot cuni dot cz 2006-04-10 10:24 --- Subject: Re: loop header should also be pulled out of the inner loop too actually, thinking about it again, it should suffice to teach invariant_without_guard_p about invariant memory

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-10 Thread rguenth at gcc dot gnu dot org
--- Comment #19 from rguenth at gcc dot gnu dot org 2006-04-10 11:56 --- So it is indeed chicken and egg ;) load-PRE does not PRE the loads if the loop is not in do-while form, and we won't hoist the loop header copies until the loads are PREd. As to comment #13, if we are able to

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-09 Thread rakdver at gcc dot gnu dot org
--- Comment #15 from rakdver at gcc dot gnu dot org 2006-04-09 23:51 --- (In reply to comment #14) (In reply to comment #11) I updated the patch for current mainline, but it still has issues for some common uses of loops: void foo(int *ie, int *je, double *x) { int i,

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-09 Thread rakdver at gcc dot gnu dot org
--- Comment #16 from rakdver at gcc dot gnu dot org 2006-04-10 00:03 --- Created an attachment (id=11231) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11231action=view) Updated version of the patch, also handling invariant memory references --

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-07 Thread rguenth at gcc dot gnu dot org
--- Comment #11 from rguenth at gcc dot gnu dot org 2006-04-07 11:34 --- I updated the patch for current mainline, but it still has issues for some common uses of loops: void foo(int *ie, int *je, double *x) { int i, j; for (j=0; j*je; ++j) for (i=0; i*ie; ++i) x[i+j] =

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-07 Thread rguenth at gcc dot gnu dot org
--- Comment #12 from rguenth at gcc dot gnu dot org 2006-04-07 12:01 --- So what I now have is (ahh, a PROP_loops would be so nice...) pass_ch pass_split_crit_edges pass_pre [cfg_cleanup to re-merge critical edges] pass_hoist_guards which works nice for this scenario, still

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-07 Thread rakdver at atrey dot karlin dot mff dot cuni dot cz
--- Comment #13 from rakdver at atrey dot karlin dot mff dot cuni dot cz 2006-04-07 12:57 --- Subject: Re: loop header should also be pulled out of the inner loop too I updated the patch for current mainline, but it still has issues for some common uses of loops: void foo(int

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-04-07 Thread rakdver at gcc dot gnu dot org
--- Comment #14 from rakdver at gcc dot gnu dot org 2006-04-07 13:20 --- (In reply to comment #11) I updated the patch for current mainline, but it still has issues for some common uses of loops: void foo(int *ie, int *je, double *x) { int i, j; for (j=0; j*je; ++j)

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-02-28 Thread patchapp at dberlin dot org
--- Comment #10 from patchapp at dberlin dot org 2006-02-28 18:15 --- Subject: Bug number PR23855 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2006-01/msg01424.html --

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-01-20 Thread rakdver at gcc dot gnu dot org
--- Comment #9 from rakdver at gcc dot gnu dot org 2006-01-20 23:56 --- Patch: http://gcc.gnu.org/ml/gcc-patches/2006-01/msg01424.html -- rakdver at gcc dot gnu dot org changed: What|Removed |Added

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-01-17 Thread rakdver at gcc dot gnu dot org
-- rakdver at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rakdver at gcc dot gnu dot |dot org

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-01-15 Thread pinskia at gcc dot gnu dot org
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-01-15 20:08 --- What really should happen is that we should change the loop to be something like which helps a different bug too (I cannot find it right now but it has to do with pulling stuff out of the loops): void bar(void);

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-01-15 Thread pinskia at gcc dot gnu dot org
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-01-15 20:12 --- Oh, that was PR 23970. And I had meant: void bar(void); void foo(int ie, int je) { int i, j; if (0je 0 ie) { j = 0; do { i =0; do { bar(); i++; } while (i ie); j++; } while (j

[Bug tree-optimization/23855] loop header should also be pulled out of the inner loop too

2006-01-15 Thread rakdver at gcc dot gnu dot org
--- Comment #8 from rakdver at gcc dot gnu dot org 2006-01-15 20:15 --- Unswitching the condition (i ie) (plus empty loop removal) would produce this code. Nevertheless, this is a fairly common case, so perhaps it might make sense to special-case it in loop header copying (for