https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114591
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-04-04 Target| |x86_64 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Component|rtl-optimization |target --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- IRA in GCC 12+ has: ``` Loop 0 (parent -1, header bb2, depth 0) bbs: 2 all: 0r85 1r82 modified regnos: 82 85 border: Pressure: GENERAL_REGS=1 Hard reg set forest: 0:( 0-6 8-15 20-51)@0 1:( 0-6 36-43)@26000 Spill a1(r82,l0) Allocno a0r85 of GENERAL_REGS(15) has 15 avail. regs 0-6 36-43, node: 0-6 36-43 (confl regs = 7-35 44-75) Forming thread from colorable bucket: Forming thread by copy 0:a0r85-a1r82 (freq=1000): Result (freq=5000): a0r85(2000) a1r82(3000) Pushing a0(r85,l0)(cost 0) Popping a0(r85,l0) -- assign reg 0 Disposition: 1:r82 l0 mem 0:r85 l0 0 New iteration of spill/restore move +++Costs: overall 1000, reg -1000, mem 2000, ld 0, st 0, move 0 +++ move loops 0, new jumps 0 ``` While before it was: ``` Loop 0 (parent -1, header bb2, depth 0) bbs: 2 all: 0r85 1r82 modified regnos: 82 85 border: Pressure: GENERAL_REGS=1 Hard reg set forest: 0:( 0-6 8-15 20-51)@0 1:( 0-6 36-43)@46000 Allocno a0r85 of GENERAL_REGS(15) has 15 avail. regs 0-6 36-43, node: 0-6 36-43 (confl regs = 7-35 44-75) Allocno a1r82 of GENERAL_REGS(15) has 15 avail. regs 0-6 36-43, node: 0-6 36-43 (confl regs = 7-35 44-75) Forming thread from colorable bucket: Forming thread by copy 0:a0r85-a1r82 (freq=1000): Result (freq=5000): a0r85(2000) a1r82(3000) Pushing a0(r85,l0)(cost 0) Pushing a1(r82,l0)(cost 0) Popping a1(r82,l0) -- assign reg 0 Popping a0(r85,l0) -- assign reg 0 Disposition: 1:r82 l0 0 0:r85 l0 0 New iteration of spill/restore move +++Costs: overall 5000, reg 5000, mem 0, ld 0, st 0, move 0 +++ move loops 0, new jumps 0 ``` Notice: ` Spill a1(r82,l0)` in GCC 12+