https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92657
--- Comment #2 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> --- (In reply to Andrew Pinski from comment #1) > Again, this is not due to tree-ch at all. This is due to the code motion > passes move invariant load/stores out of the loop. Tree-ch pass just allows > those passes to work. > > All three (gcse, tree pre and tree lim) need to be disabled to see the > difference as all three are able to do the transformation. Sorry if I was not clear that tree-ch is not the culprit, but rather that it enabled further optimizations to increase register pressure. But as I added by disabling gcse, tree pre, and tree lim does help total stack usage, but it does not reach on same level as disabling tree-ch.