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.

Reply via email to