public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
@ 2012-12-14  9:25 ` rguenth at gcc dot gnu.org
  2012-12-14 10:03 ` rguenth at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-14  9:25 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.0


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

* [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
@ 2012-12-14  9:25 rguenth at gcc dot gnu.org
  2012-12-14  9:25 ` [Bug rtl-optimization/55686] " rguenth at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-14  9:25 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55686
           Summary: [4.8 Regression] ICE in assign_by_spills, at
                    lra-assigns.c:1244
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, ra
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: rguenth@gcc.gnu.org
                CC: vmakarov@gcc.gnu.org
            Target: i?86-*-*


Created attachment 28952
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28952
preprocessed source

/usr/lib/gcc/i586-suse-linux/4.8/cc1 -fpreprocessed vm.i -quiet -dumpbase vm.c
-mtune=generic -march=i586 -auxbase-strip vm.o -g -O2 -Wall -w -version
-fomit-frame-pointer -fmessage-length=0 -fstack-protector -funwind-tables
-fasynchronous-unwind-tables -fPIC -fvisibility=hidden -o vm.s
GNU C (SUSE Linux) version 4.8.0 20121212 [trunk revision 194442]
(i586-suse-linux)
        compiled by GNU C version 4.8.0 20121212 [trunk revision 194442], GMP
version 5.0.5, MPFR version 3.1.1, MPC version 1.0
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (SUSE Linux) version 4.8.0 20121212 [trunk revision 194442]
(i586-suse-linux)
        compiled by GNU C version 4.8.0 20121212 [trunk revision 194442], GMP
version 5.0.5, MPFR version 3.1.1, MPC version 1.0
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: e68fcd130690afd931631ae80bbb1d1f
In file included from vm.c:25:0:
vm_exec.c: In function 'vm_exec_core':
vm_exec.c:113:1: internal compiler error: in assign_by_spills, at
lra-assigns.c:1244
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
  2012-12-14  9:25 ` [Bug rtl-optimization/55686] " rguenth at gcc dot gnu.org
@ 2012-12-14 10:03 ` rguenth at gcc dot gnu.org
  2012-12-14 11:16 ` mpolacek at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-14 10:03 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-12-14
     Ever Confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-14 10:02:52 UTC ---
Reduced testcase:

typedef unsigned long VALUE;
typedef unsigned long rb_num_t;
typedef struct rb_vm_struct {
    VALUE *pc;
    VALUE *sp;
} rb_control_frame_t;
void vm_expandarray(rb_control_frame_t *cfp, VALUE ary, rb_num_t num, int flag)
{
    VALUE *base = cfp->sp, *ptr;
    rb_num_t len;
    if (flag & 0x02) {
        rb_num_t i = 0, j;
        for (j=0; i<num; i++, j++) {
            VALUE v = ptr[len - j - 1];
            *base++ = v;
        }
    }
    register VALUE * reg_pc __asm__("e" "di");
    register rb_control_frame_t * reg_cfp __asm__("e" "si");
      { 
        rb_num_t flag = (rb_num_t)((reg_pc)[(2)]); 
        rb_num_t num = (rb_num_t)((reg_pc)[(1)]); 
        VALUE ary = (*(((((reg_cfp)->sp)))-(0)-1)); 
        ((reg_cfp->pc = reg_pc = (reg_pc + (1+2))));
        ((((reg_cfp)->sp) -= (((1)))));
        vm_expandarray((((reg_cfp))), ary, num, (int)flag);
        goto *(void const *)(*(reg_pc));
      }
}


> ./cc1 -quiet -O -m32 vm.3.3.i
vm.3.3.i: In function 'vm_expandarray':
vm.3.3.i:28:1: internal compiler error: in assign_by_spills, at
lra-assigns.c:1244
 }
 ^
0x95a80e assign_by_spills
        /space/rguenther/src/svn/trunk/gcc/lra-assigns.c:1244
0x95b133 lra_assign()
        /space/rguenther/src/svn/trunk/gcc/lra-assigns.c:1398
0x955893 lra(_IO_FILE*)
        /space/rguenther/src/svn/trunk/gcc/lra.c:2309
0x90ba42 do_reload
        /space/rguenther/src/svn/trunk/gcc/ira.c:4624
0x90bc50 rest_of_handle_reload
        /space/rguenther/src/svn/trunk/gcc/ira.c:4737


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
  2012-12-14  9:25 ` [Bug rtl-optimization/55686] " rguenth at gcc dot gnu.org
  2012-12-14 10:03 ` rguenth at gcc dot gnu.org
@ 2012-12-14 11:16 ` mpolacek at gcc dot gnu.org
  2012-12-14 11:26 ` jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2012-12-14 11:16 UTC (permalink / raw)
  To: gcc-bugs


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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> 2012-12-14 11:16:13 UTC ---
More reduced.

void
f (long num)
{
  long *base = 0, *ptr;
  long i = 0, j;
  for (; i < num; i++, j++)
    {   
      long v = ptr[j];
      *base++ = v;
    }   
  register *reg_pc __asm__ ("di");
  goto **reg_pc;
}


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-12-14 11:16 ` mpolacek at gcc dot gnu.org
@ 2012-12-14 11:26 ` jakub at gcc dot gnu.org
  2012-12-14 11:27 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-14 11:26 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-14 11:26:15 UTC ---
Even more reduced:

struct S { unsigned long *s, *t; };
unsigned long *q;

void
foo (struct S *x, unsigned long y, unsigned long z, int w)
{
  unsigned long *d = x->t, j;
  if (w)
    for (j = 0; j < z; j++)
      *d++ = q[-j];
  register unsigned long *g __asm__ ("edi");
  register struct S *h __asm__ ("esi");
  h->s = g;
  h->t--;
  foo (h, h->t[-1], g[1], (int) g[2]);
  goto *(void *) *g;
}

ICEd with reload too, starting with
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185465
The reload ICE was
pr55686.c: In function ‘foo’:
pr55686.c:17:1: error: unable to find a register to spill in class ‘DIREG’
pr55686.c:17:1: error: this is the insn:
(insn 29 28 30 5 (parallel [
            (set (mem:SI (reg/v/f:SI 1 dx [orig:66 d ] [66]) [4 MEM[base: d_9,
offset: 4294967292B]+0 S4 A32])
                (reg:SI 0 ax [orig:67 D.1379 ] [67]))
            (set (reg/v/f:SI 1 dx [orig:66 d ] [66])
                (plus:SI (reg/v/f:SI 1 dx [orig:66 d ] [66])
                    (const_int 4 [0x4])))
        ]) pr55686.c:10 883 {*strsetsi_1}
     (expr_list:REG_DEAD (reg:SI 0 ax [orig:67 D.1379 ] [67])
        (nil)))
pr55686.c:17:1: internal compiler error: in spill_failure, at reload1.c:2120
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-12-14 11:26 ` jakub at gcc dot gnu.org
@ 2012-12-14 11:27 ` jakub at gcc dot gnu.org
  2012-12-14 15:13 ` vmakarov at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-14 11:27 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-14 11:27:07 UTC ---
The even more was for #c1, obviously Marek testcase is even simpler.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-12-14 11:27 ` jakub at gcc dot gnu.org
@ 2012-12-14 15:13 ` vmakarov at gcc dot gnu.org
  2012-12-14 16:34 ` jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2012-12-14 15:13 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #5 from Vladimir Makarov <vmakarov at gcc dot gnu.org> 2012-12-14 15:12:31 UTC ---
Yes, Jakub is right.  All 4 tests presented here ICE in reload pass too with
`unable to find a register to spill in class ‘DIREG’`.

I think I could fix it in LRA as it has a code for hard reg live range
splitting but I think we should fix the reason (first change in GCC code)
resulted in the ICE as all other targets use reload and they might have the
same bug.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-12-14 15:13 ` vmakarov at gcc dot gnu.org
@ 2012-12-14 16:34 ` jakub at gcc dot gnu.org
  2012-12-17 15:41 ` steven at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-14 16:34 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |uros at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-14 16:34:24 UTC ---
The problem here are the local register asm vars, we have tests like
!fixed_regs[DI_REG] all around the stos/etc. code, but that catches just global
register asm vars, not local ones.  Perhaps we should gather during expansion
time or so what local register asm vars are being used in the current function,
and use that along with the global vars tests.

In this testcase it actually isn't a memset/memcpy, but combine combining:
(insn 50 49 51 6 (parallel [
            (set (reg/v/f:DI 72 [ d ])
                (plus:DI (reg/v/f:DI 72 [ d ])
                    (const_int 8 [0x8])))
            (clobber (reg:CC 17 flags))
        ]) pr55686.c:10 272 {*adddi_1}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
...
(insn 52 51 53 6 (set (mem:DI (plus:DI (reg/v/f:DI 72 [ d ])
                (const_int -8 [0xfffffffffffffff8])) [4 MEM[base: d_10, offset:
-8B]+0 S8 A64])
        (reg:DI 73 [ D.1766 ])) pr55686.c:10 87 {*movdi_internal_rex64}
     (expr_list:REG_DEAD (reg:DI 73 [ D.1766 ])
        (nil)))
into:
(note 50 49 51 6 NOTE_INSN_DELETED)
...
(insn 52 51 53 6 (parallel [
            (set (mem:DI (reg/v/f:DI 72 [ d ]) [4 MEM[base: d_10, offset:
-8B]+0 S8 A64])
                (reg:DI 73 [ D.1766 ]))
            (set (reg/v/f:DI 72 [ d ])
                (plus:DI (reg/v/f:DI 72 [ d ])
                    (const_int 8 [0x8])))
        ]) pr55686.c:10 914 {*strsetdi_rex_1}
     (expr_list:REG_DEAD (reg:DI 73 [ D.1766 ])
        (nil)))
I'd say this combining is always a bad idea, there is just a single register
that can be used for this, so merging it into stosl increases the register
pressure.
Not sure if we shouldn't reject strset* in the legitimate combine insn
targhook, or modify those patterns to contain some UNSPEC somewhere so that
combine just wouldn't match them, or similar.  That said, local register asm
("edi") etc. might still fail with aggregate copies (or
memset/memcpy/strlen/etc. calls) if expanded inline.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-12-14 16:34 ` jakub at gcc dot gnu.org
@ 2012-12-17 15:41 ` steven at gcc dot gnu.org
  2012-12-19 15:29 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: steven at gcc dot gnu.org @ 2012-12-17 15:41 UTC (permalink / raw)
  To: gcc-bugs


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

Steven Bosscher <steven at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |steven at gcc dot gnu.org

--- Comment #7 from Steven Bosscher <steven at gcc dot gnu.org> 2012-12-17 15:41:04 UTC ---
(In reply to comment #6)
> The problem here are the local register asm vars, we have tests like
> !fixed_regs[DI_REG] all around the stos/etc. code, but that catches just
> global register asm vars, not local ones.  Perhaps we should gather during
> expansion time or so what local register asm vars are being used in the 
> current function, and use that along with the global vars tests.

There is already cfun->has_local_explicit_reg_vars, it could be changed
into a HARD_REG_SET to track which registers that'd be.


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2012-12-17 15:41 ` steven at gcc dot gnu.org
@ 2012-12-19 15:29 ` rguenth at gcc dot gnu.org
  2012-12-19 15:32 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 15:29 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-19 15:29:21 UTC ---
Happens in quite some packages for us: clisp, evince, pstoedit and ruby19


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2012-12-19 15:29 ` rguenth at gcc dot gnu.org
@ 2012-12-19 15:32 ` jakub at gcc dot gnu.org
  2012-12-21 13:48 ` hubicka at ucw dot cz
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-19 15:32 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-19 15:31:33 UTC ---
Honza, any thoughts on this (both the combine vs. strset and local register
vars vs. string insns)?


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2012-12-19 15:32 ` jakub at gcc dot gnu.org
@ 2012-12-21 13:48 ` hubicka at ucw dot cz
  2013-01-07 15:31 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: hubicka at ucw dot cz @ 2012-12-21 13:48 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #10 from Jan Hubicka <hubicka at ucw dot cz> 2012-12-21 13:48:19 UTC ---
> Honza, any thoughts on this (both the combine vs. strset and local register
> vars vs. string insns)?

Well, Steven's suggestion to track local explicit reg vars in seems resonable,
it
probably could go to crtl and be set at expansion time. We probably could have
locally_fixed_regs regset that contains fixed_regs + the local registers vars?

To be honest I am not exactly sure what has_local_explicit_reg_vars code is
shooting
for. Especially because it seems to be used only in rather rare case of store
sink
so it may be better to simply determine it locally rather than having in cfun.

The strset patterns was really intended for memcpy/memset expansion where we
need
to have stuff in proper registers anyway.  Random matching seems bad idea
indeed.
I would go with the unspec way.

Honza


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2012-12-21 13:48 ` hubicka at ucw dot cz
@ 2013-01-07 15:31 ` rguenth at gcc dot gnu.org
  2013-01-22  9:20 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-01-07 15:31 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2013-01-07 15:31 ` rguenth at gcc dot gnu.org
@ 2013-01-22  9:20 ` jakub at gcc dot gnu.org
  2013-01-22 16:42 ` jakub at gcc dot gnu.org
  2013-01-22 17:05 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-01-22  9:20 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-22 09:19:18 UTC ---
Created attachment 29245
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29245
gcc48-pr55686.patch

The UNSPEC_STOS way, untested so far.
This doesn't attempt to solve the other issue, but I believe it isn't a
regression, thus perhaps we could postpone the rest for 4.9?


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2013-01-22  9:20 ` jakub at gcc dot gnu.org
@ 2013-01-22 16:42 ` jakub at gcc dot gnu.org
  2013-01-22 17:05 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-01-22 16:42 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-22 16:41:44 UTC ---
Author: jakub
Date: Tue Jan 22 16:41:30 2013
New Revision: 195381

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195381
Log:
    PR target/55686
    * config/i386/i386.md (UNSPEC_STOS): New.
    (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
    *strsetqi_1): Add UNSPEC_STOS.

    * gcc.target/i386/pr55686.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr55686.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog


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

* [Bug rtl-optimization/55686] [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244
  2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2013-01-22 16:42 ` jakub at gcc dot gnu.org
@ 2013-01-22 17:05 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-01-22 17:05 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-22 17:04:53 UTC ---
Regression fixed.  For the rest I think we can defer that for 4.9.  Will open a
PR for that.


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

end of thread, other threads:[~2013-01-22 17:05 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-14  9:25 [Bug rtl-optimization/55686] New: [4.8 Regression] ICE in assign_by_spills, at lra-assigns.c:1244 rguenth at gcc dot gnu.org
2012-12-14  9:25 ` [Bug rtl-optimization/55686] " rguenth at gcc dot gnu.org
2012-12-14 10:03 ` rguenth at gcc dot gnu.org
2012-12-14 11:16 ` mpolacek at gcc dot gnu.org
2012-12-14 11:26 ` jakub at gcc dot gnu.org
2012-12-14 11:27 ` jakub at gcc dot gnu.org
2012-12-14 15:13 ` vmakarov at gcc dot gnu.org
2012-12-14 16:34 ` jakub at gcc dot gnu.org
2012-12-17 15:41 ` steven at gcc dot gnu.org
2012-12-19 15:29 ` rguenth at gcc dot gnu.org
2012-12-19 15:32 ` jakub at gcc dot gnu.org
2012-12-21 13:48 ` hubicka at ucw dot cz
2013-01-07 15:31 ` rguenth at gcc dot gnu.org
2013-01-22  9:20 ` jakub at gcc dot gnu.org
2013-01-22 16:42 ` jakub at gcc dot gnu.org
2013-01-22 17:05 ` jakub 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).