On Fri, Sep 03, 2021 at 05:05:47PM +0200, Andreas Schwab wrote: > On Sep 02 2021, Segher Boessenkool wrote: > > On Tue, Aug 31, 2021 at 07:17:49PM +0800, liuhongt via Gcc-patches wrote: > >> * emit-rtl.c (validate_subreg): Get rid of all float-int > >> special cases. > > > > This caused various regressions on powerpc. Please revert this until > > this can be done safely (the comment this patch deletes says why it can > > not be done yet). > > This also breaks ada on riscv64. > > s-fatgen.adb: In function 'System.Fat_Flt.Attr_Float.Scaling': > s-fatgen.adb:830:8: error: unable to find a register to spill > s-fatgen.adb:830:8: error: this is the insn: > (insn 215 321 216 26 (set (reg:SF 88 [ xx.26_39 ]) > (mult:SF (reg:SF 190) > (subreg:SF (reg:DI 221 [164]) 0))) "s-fatgen.adb":821:25 17 > {mulsf3} > (expr_list:REG_DEAD (reg:DI 221 [164]) > (expr_list:REG_DEAD (reg:SF 190) > (nil)))) > during RTL pass: reload
It still is broken on rs6000. This breaks when building SPEC for example (but in many more places as well). This needs to be fixed somehow. I sent <https://gcc.gnu.org/pipermail/gcc-patches/2021-September/579026.html> (Message-ID: <20210907230730.gm1...@gate.crashing.org>) that may be a start discussing this somewhat. The idea of the change looks fine, but the time isn't ripe for it yet (if it was intentional!) In the meantime, various targets still are broken. This needs a real fix. How many *other* targets have been broken, just not detected yet? Segher