public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
@ 2014-03-24  8:59 ` rguenth at gcc dot gnu.org
  2014-04-01  4:42 ` venkataramanan.kumar at amd dot com
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-03-24  8:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.3

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
-fno-tree-dce is certainly not a good idea ... (doesn't make it a non-bug, of
course).


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
  2014-03-24  8:59 ` [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS' rguenth at gcc dot gnu.org
@ 2014-04-01  4:42 ` venkataramanan.kumar at amd dot com
  2014-05-12 10:45 ` venkataramanan.kumar at amd dot com
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: venkataramanan.kumar at amd dot com @ 2014-04-01  4:42 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Venkataramanan <venkataramanan.kumar at amd dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |venkataramanan.kumar at amd dot co
                   |                            |m

--- Comment #2 from Venkataramanan <venkataramanan.kumar at amd dot com> ---
This bug occurrs with GCC trunk as well with IRA and reload. 
Can be reproduced with -std=c++11 -fno-tree-dce -fno-omit-frame-pointer -O2
-mno-lra.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
  2014-03-24  8:59 ` [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS' rguenth at gcc dot gnu.org
  2014-04-01  4:42 ` venkataramanan.kumar at amd dot com
@ 2014-05-12 10:45 ` venkataramanan.kumar at amd dot com
  2014-05-12 10:56 ` venkataramanan.kumar at amd dot com
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: venkataramanan.kumar at amd dot com @ 2014-05-12 10:45 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

--- Comment #3 from Venkataramanan <venkataramanan.kumar at amd dot com> ---
The bug is now hidden in trunk by revision 209897

The patch "Remove PUSH_ARGS_REVERSED from the RTL expander"
(reference below) seems to change the way arguments are handled in RTL. 

Ref:
http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=bf29c577b9128551d76adc5b0331d375be49d7d3


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2014-05-12 10:45 ` venkataramanan.kumar at amd dot com
@ 2014-05-12 10:56 ` venkataramanan.kumar at amd dot com
  2014-05-22  9:07 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: venkataramanan.kumar at amd dot com @ 2014-05-12 10:56 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

--- Comment #4 from Venkataramanan <venkataramanan.kumar at amd dot com> ---
Reverting this patch in 209897 bug still occurs in trunk with -mno-lra.

SPILL failure occurs for regno 110 ("dst" operand) in below instruction 

(insn 634 633 635 27 (parallel [
            (set (reg:SI 3 r3)
                (ior:SI (eq:SI (reg/v:SI 110 [ dst ]) <== This operand r5 is
registers gets assigned
                        (reg/v:SI 112 [ op2 ]))
                    (eq:SI (reg/v:SI 110 [ dst ]) <== This operand
                        (reg/v:SI 111 [ op1 ]))))
            (clobber (reg:CC 100 cc))
        ]) ../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:179 300
{*ior_scc_scc

First observation is that reload is not able to reuse "r5" that was used in
second reload in operation for the same register id 110 "dst"


The IRA Dump shows.

(insn 632 631 633 27 (set (reg:SI 1 r1)
        (reg/v:SI 110 [ dst ]))
../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:179 667 {*thumb2_movsi_vfp}
     (nil))
(insn 633 632 634 27 (set (reg:SI 2 r2)
        (const_int 0 [0]))
../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:179 667 {*thumb2_movsi_vfp}
     (nil))
(insn 634 633 635 27 (parallel [
            (set (reg:SI 3 r3)
                (ior:SI (eq:SI (reg/v:SI 110 [ dst ])
                        (reg/v:SI 112 [ op2 ]))
                    (eq:SI (reg/v:SI 110 [ dst ])
                        (reg/v:SI 111 [ op1 ]))))
            (clobber (reg:CC 100 cc))
        ]) ../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:179 300
{*ior_scc_scc}

The register operand 110 "dst" is already passed as argument 1 and hence gets
register r1. See insn 632.

But this is not reused by  insn 634.

However there are some other places in IRA dump where the same expression
occurs and there register r1 is used. Here operand "dst" 110 is marked as dead.


(insn 431 430 433 24 (set (reg:SI 1 r1)
        (reg/v:SI 110 [ dst ]))
../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:388 667 {*thumb2_movsi_vfp}
     (expr_list:REG_DEAD (reg/v:SI 110 [ dst ])
        (nil)))

(insn 433 431 432 24 (parallel [
            (set (reg:SI 3 r3)
                (ior:SI (eq:SI (reg/v:SI 112 [ op ])
                        (reg:SI 1 r1))
                    (eq:SI (reg/v:SI 111 [ op ])
                        (reg:SI 1 r1))))
            (clobber (reg:CC 100 cc))
        ]) ../Source/JavaScriptCore/jit/JITArithmetic32_64.cpp:388 300
{*ior_scc_scc 


Still working on why IRA is not replacing the operand with R1 here, but
replaces in other places.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2014-05-12 10:56 ` venkataramanan.kumar at amd dot com
@ 2014-05-22  9:07 ` rguenth at gcc dot gnu.org
  2014-12-10 12:55 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-22  9:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.3                       |4.8.4

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 4.8.3 is being released, adjusting target milestone.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2014-05-22  9:07 ` rguenth at gcc dot gnu.org
@ 2014-12-10 12:55 ` rguenth at gcc dot gnu.org
  2014-12-19 13:34 ` jakub at gcc dot gnu.org
  2015-06-23  8:49 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-12-10 12:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra
             Target|                            |arm
           Priority|P3                          |P2


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2014-12-10 12:55 ` rguenth at gcc dot gnu.org
@ 2014-12-19 13:34 ` jakub at gcc dot gnu.org
  2015-06-23  8:49 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-12-19 13:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.4                       |4.8.5

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.4 has been released.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS'
       [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2014-12-19 13:34 ` jakub at gcc dot gnu.org
@ 2015-06-23  8:49 ` rguenth at gcc dot gnu.org
  7 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-06-23  8:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60617

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|4.8.5                       |4.9.0
      Known to fail|                            |4.8.5

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed for 4.9.0.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-06-23  8:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-60617-4@http.gcc.gnu.org/bugzilla/>
2014-03-24  8:59 ` [Bug target/60617] [4.8 Regression] unable to find a register to spill in class 'LO_REGS' rguenth at gcc dot gnu.org
2014-04-01  4:42 ` venkataramanan.kumar at amd dot com
2014-05-12 10:45 ` venkataramanan.kumar at amd dot com
2014-05-12 10:56 ` venkataramanan.kumar at amd dot com
2014-05-22  9:07 ` rguenth at gcc dot gnu.org
2014-12-10 12:55 ` rguenth at gcc dot gnu.org
2014-12-19 13:34 ` jakub at gcc dot gnu.org
2015-06-23  8:49 ` rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).