https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114855
--- Comment #19 from Andrew Macleod <amacleod at redhat dot com> --- (In reply to GCC Commits from comment #17) > The master branch has been updated by Andrew Macleod <amacl...@gcc.gnu.org>: > > https://gcc.gnu.org/g:9e4da946c4263a4c89d5fc365b3c97ae244c5018 > > commit r15-2858-g9e4da946c4263a4c89d5fc365b3c97ae244c5018 > Author: Andrew MacLeod <amacl...@redhat.com> > Date: Thu Aug 8 16:37:28 2024 -0400 > > Adjust rangers recomputation depth based on the number of BBs. > > As the number of block increase, recomputations can become more > expensive. Adjust the depth limit to avoid excessive compile time. > > PR tree-optimization/114855 > * gimple-range-gori.cc (gori_compute::gori_compute): Adjust > ranger_recompute_depth limit based on the number of BBs. > (gori_compute::may_recompute_p): Use previosuly calculated value. > * gimple-range-gori.h (gori_compute::m_recompute_depth): New. With the second change, on my machine at -O1 we're down to: callgraph ipa passes : 47.83 ( 11%) 1.64 ( 25%) 49.65 ( 12%) 338M ( 17%) df live regs : 12.19 ( 3%) 0.19 ( 3%) 12.41 ( 3%) 0 ( 0%) dominator optimization : 214.20 ( 51%) 0.58 ( 9%) 215.56 ( 51%) 113M ( 6%) backwards jump threading : 27.58 ( 7%) 0.20 ( 3%) 27.95 ( 7%) 68M ( 3%) tree CCP : 5.46 ( 1%) 0.15 ( 2%) 5.72 ( 1%) 14M ( 1%) tree FRE : 5.48 ( 1%) 0.20 ( 3%) 5.69 ( 1%) 2063k ( 0%) dominance computation : 8.54 ( 2%) 0.18 ( 3%) 8.79 ( 2%) 0 ( 0%) integrated RA : 28.48 ( 7%) 0.03 ( 0%) 28.61 ( 7%) 29M ( 1%) LRA non-specific : 12.43 ( 3%) 0.01 ( 0%) 12.48 ( 3%) 8977k ( 0%) TOTAL : 416.00 6.52 424.24 2041M So better. Still have some DOM work to do. That is mostly edge range recalculations in the path ranger and GORI. -O2 is a different beast :-P