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+

Reply via email to