RFC: Another pass_late_combine after pass_reorder_blocks?
Uros Bizjak
ubizjak@gmail.com
Thu Apr 16 11:36:16 GMT 2026
On Thu, Apr 16, 2026 at 1:35 PM Uros Bizjak <ubizjak@gmail.com> 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.
More information about the Gcc
mailing list