Hi, On Thu, 2024-06-27 at 14:56 -0700, Palmer Dabbelt wrote: > This is really more of a question than a patch. > > Looking at PR/115687 I managed to convince myself there's a general > class of problems here: splitting might produce constant subexpressions, > but as far as I can tell there's nothing to eliminate those constant > subexpressions. So I very quickly threw together a CSE that doesn't > fold expressions, and it does eliminate the high-part constants in > question.
Maybe this is somewhat relevant ... On SH there was/is a need to hoist constant loads outside of loops, which might form as part of combine/split1 optimization. https://gcc.gnu.org/bugzilla/attachment.cgi?id=55543&action=diff Don't know about others, but maybe it would make sense to have those passes permanently added for everyone, with conditional opt-in/opt-out so keep the compile times down. Best regards, Oleg Endo