public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/46843] New: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles
@ 2010-12-07 23:10 zsojka at seznam dot cz
  2012-07-13 15:08 ` [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure ubizjak at gmail dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: zsojka at seznam dot cz @ 2010-12-07 23:10 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: ICE: in spill_failure, at reload1.c:2157
                    -fschedule-insns -fsched-pressure when using doubles
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: zsojka@seznam.cz
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu


Created attachment 22677
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22677
reduced testcase

Compiler output:
$ gcc -O -fschedule-insns -fsched-pressure pr46843.c 
pr46843.c: In function 'foo':
pr46843.c:9:1: error: unable to find a register to spill in class 'CREG'
pr46843.c:9:1: error: this is the insn:
(insn 19 50 9 2 (parallel [
            (set (reg/v:SI 0 ax [orig:63 n ] [63])
                (ashift:SI (reg:SI 0 ax [84])
                    (reg:QI 37 r8 [ s ])))
            (clobber (reg:CC 17 flags))
        ]) pr46843.c:3 497 {*ashlsi3_1}
     (expr_list:REG_DEAD (reg:SI 0 ax [84])
        (expr_list:REG_DEAD (reg:QI 37 r8 [ s ])
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))
pr46843.c:9:1: internal compiler error: in spill_failure, at reload1.c:2105
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

-mdispatch-scheduler -march=bdver1 doesn't help in this case (opposing to
PR46829)

Tested revisions:
r167471 - fail
4.5 r166509 - fail


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

* [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure
  2010-12-07 23:10 [Bug rtl-optimization/46843] New: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles zsojka at seznam dot cz
@ 2012-07-13 15:08 ` ubizjak at gmail dot com
  2012-09-01 14:30 ` uros at gcc dot gnu.org
  2012-09-05  8:17 ` ubizjak at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: ubizjak at gmail dot com @ 2012-07-13 15:08 UTC (permalink / raw)
  To: gcc-bugs

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

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-07-13
   Target Milestone|---                         |4.6.4
            Summary|ICE: in spill_failure, at   |ICE: in spill_failure, at
                   |reload1.c:2157              |reload1.c:2157
                   |-fschedule-insns            |-fschedule-insns
                   |-fsched-pressure when using |-fsched-pressure
                   |doubles                     |
     Ever Confirmed|0                           |1
      Known to fail|                            |4.7.2, 4.8.0

--- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-13 15:07:28 UTC ---
Confirmed.

sched1 pass is moving insn that reads CX hard register after the shift:

(insn 20 7 10 2 (parallel [
            (set (reg/v:SI 64 [ n ])
                (ashift:SI (reg:SI 85)
                    (reg:QI 37 r8 [ s ])))
            (clobber (reg:CC 17 flags))
        ]) pr46843.c:3 498 {*ashlsi3_1}
     (expr_list:REG_DEAD (reg:SI 85)
        (expr_list:REG_DEAD (reg:QI 37 r8 [ s ])
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))

(insn 10 20 13 2 (set (reg/v/f:DI 81 [ d2 ])
        (reg:DI 2 cx [ d2 ])) pr46843.c:2 63 {*movdi_internal_rex64}
     (expr_list:REG_DEAD (reg:DI 2 cx [ d2 ])
        (nil)))

Probably not a good idea to increase live ranges of hard registers before
register allocation pass.

This PR is somehow related to PR 53942, where combine pass increased live range
of CX register after shift insn.


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

* [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure
  2010-12-07 23:10 [Bug rtl-optimization/46843] New: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles zsojka at seznam dot cz
  2012-07-13 15:08 ` [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure ubizjak at gmail dot com
@ 2012-09-01 14:30 ` uros at gcc dot gnu.org
  2012-09-05  8:17 ` ubizjak at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: uros at gcc dot gnu.org @ 2012-09-01 14:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from uros at gcc dot gnu.org 2012-09-01 14:29:51 UTC ---
Author: uros
Date: Sat Sep  1 14:29:45 2012
New Revision: 190847

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190847
Log:
    PR target/46829
    PR target/46843
    * config/i386/i386.c (ix86_legitimate_combined_insn): New function.
    (TARGET_LEGITIMATE_COMBINED_INSN): New macro.

testsuite/ChangeLog:

    PR target/46829
    PR target/46843
    * gcc.target/i386/pr46829.c: New test.
    * gcc.target/i386/pr46843.c: Ditto.


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr46829.c
    trunk/gcc/testsuite/gcc.target/i386/pr46843.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure
  2010-12-07 23:10 [Bug rtl-optimization/46843] New: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles zsojka at seznam dot cz
  2012-07-13 15:08 ` [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure ubizjak at gmail dot com
  2012-09-01 14:30 ` uros at gcc dot gnu.org
@ 2012-09-05  8:17 ` ubizjak at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: ubizjak at gmail dot com @ 2012-09-05  8:17 UTC (permalink / raw)
  To: gcc-bugs

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

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|4.6.4                       |4.8.0
      Known to fail|4.8.0                       |

--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2012-09-05 08:16:32 UTC ---
Fixed for 4.8.


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

end of thread, other threads:[~2012-09-05  8:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-07 23:10 [Bug rtl-optimization/46843] New: ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure when using doubles zsojka at seznam dot cz
2012-07-13 15:08 ` [Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure ubizjak at gmail dot com
2012-09-01 14:30 ` uros at gcc dot gnu.org
2012-09-05  8:17 ` ubizjak at gmail dot com

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).