On Thu, Apr 16, 2026 at 1:35 PM Uros Bizjak <[email protected]> wrote:
> > Did you try moving the existing postreload late_combine later? > > While moving the pass results in the same code for the above trivial > testcase, it regressed linux code size considerably: > > $size *.o > text data bss dec hex filename > 29483880 4932443 754228 35170551 218a8f7 vmlinux-moved.o > 29415516 4932443 754228 35102187 2179deb vmlinux-new.o > 29432351 4932443 754228 35119022 217dfae vmlinux-old.o > > The postreload late_combine pass apparently frees some registers, so > follow-up passes can use them. This is not the case when the pass is > simply moved to the new location. The instructions are still combined > when the pass is moved after bbro pass, but used registers are "dead" > for the preceding optimization passes. "dead" in the "not available" sense. Uros.
