Re: RFC: Another pass_late_combine after pass_reorder_blocks?
Uros Bizjak via Gcc <[email protected]>
| Newsgroups | gmane.comp.gcc.devel |
|---|---|
| Message-ID | <CAFULd4baGvAP6+AkkY_QHYvo8p34uFHFyUznQSyTVNLtE_2Xtw@mail.gmail.com> |
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.