public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
@ 2013-12-23 13:04 hp at gcc dot gnu.org
  2013-12-23 13:09 ` [Bug middle-end/59584] " jakub at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 13:04 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 59584
           Summary: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by
                    "Don't reject TER unnecessarily"
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hp at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
              Host: x86_64-unknown-linux-gnu
            Target: cris-axis-elf

This test previously passed, now it fails.
A patch in the revision range (last_known_working:first_known_failing)
206008:206011 exposed or caused this regression.  Since then it fails as
follows:

Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/dg.exp ...
...
FAIL: gcc.dg/pr50251.c (internal compiler error)
FAIL: gcc.dg/pr50251.c (test for excess errors)


In gcc.log:
Executing on host: /tmp/hpautotest-gcc1/cris-elf/gccobj/gcc/xgcc
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/gcc/
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c 
-fno-diagnostics-show-caret -fdiagnostics-color=never   -O2 -S   -isystem
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib/targ-include -isystem
/tmp/hpautotest-gcc1/gcc/newlib/libc/include  -o pr50251.s    (timeout = 300)
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c: In function 'main':
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:18:1: internal compiler
error: in fixup_args_size_notes, at expr.c:3978
0x698221 fixup_args_size_notes(rtx_def*, rtx_def*, int)
        /tmp/hpautotest-gcc1/gcc/gcc/expr.c:3978
0x67aef9 try_split(rtx_def*, rtx_def*, int)
        /tmp/hpautotest-gcc1/gcc/gcc/emit-rtl.c:3602
0x886e61 split_insn
        /tmp/hpautotest-gcc1/gcc/gcc/recog.c:2850
0x887104 split_all_insns()
        /tmp/hpautotest-gcc1/gcc/gcc/recog.c:2940
0x8871d2 rest_of_handle_split_after_reload
        /tmp/hpautotest-gcc1/gcc/gcc/recog.c:3889
0x8871d2 execute
        /tmp/hpautotest-gcc1/gcc/gcc/recog.c:3918
Please submit a full bug report,
with preprocessed source if appropriate.

(as the test-case is without preprocessing directives no such action necessary)

A few more hints from gdb shows that gcc ties itself in a knot when splitting:
 (set (reg/f:SI 14 sp) (mem/f/c:SI (symbol_ref:SI ("p")))
into:
(gdb) call debug_rtx_range (seq, 0)
(insn 33 0 34 (set (reg/f:SI 14 sp)
        (symbol_ref:SI ("p") <var_decl 0x7ffff7eb2000 p>)) -1
     (nil))

(insn 34 33 0 (set (reg/f:SI 14 sp)
        (mem/f/c:SI (reg/f:SI 14 sp) [2 p+0 S4 A8])) -1
     (expr_list:REG_ARGS_SIZE (const_int 0 [0])
        (nil)))

(nil)

While this define_split has a bug (by matching sp, allowing to set the stack
temporarily in an inconsistent state by using sp as a temporary for the
symbol), I doubt that's the actual bug causing internal inconsistency within
gcc.  Anyway:

(gdb) r -fpreprocessed pr50251.i -melf -quiet -dumpbase pr50251.c
-auxbase-strip pr50251.s -O2 -version -fno-diagnostics-show-caret
-fdiagnostics-color=never -o pr50251.s
GNU C (GCC) version 4.9.0 20131223 (experimental) [trunk revision 206176]
(cris-elf)
        compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP
version 4.3.0, MPFR version 2.4.1, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.9.0 20131223 (experimental) [trunk revision 206176]
(cris-elf)
        compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP
version 4.3.0, MPFR version 2.4.1, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: cc4b37aa04284e09676146c2c3d35a20

Breakpoint 1, fancy_abort (file=0xd4f878 "/tmp/hpautotest-gcc1/gcc/gcc/expr.c",
line=3978, 
    function=0xd50d50 "fixup_args_size_notes") at
/tmp/hpautotest-gcc1/gcc/gcc/diagnostic.c:1182
1182    {
Missing separate debuginfos, use: debuginfo-install glibc-2.11.1-1.x86_64
libgcc-4.4.4-10.fc12.x86_64 libstdc++-4.4.4-10.fc12.x86_64
(gdb) up
#1  0x0000000000698222 in fixup_args_size_notes (prev=0x0, last=<value
optimized out>, 
    end_args_size=<value optimized out>) at
/tmp/hpautotest-gcc1/gcc/gcc/expr.c:3978
3978          gcc_assert (!saw_unknown);
(gdb) p prev
(gdb) p prev
$1 = (rtx_def *) 0x0
(gdb) p last
$2 = <value optimized out>
(gdb) up
#2  0x000000000067aefa in try_split (pat=<value optimized out>,
trial=0x7ffff7ea47e0, last=1)
    at /tmp/hpautotest-gcc1/gcc/gcc/emit-rtl.c:3602
3602              fixup_args_size_notes (NULL_RTX, insn_last, INTVAL (XEXP
(note, 0)));
(gdb) p insn_last
$3 = (rtx_def *) 0x7ffff7ea4c60
(gdb) p note
$4 = (rtx_def *) 0x7ffff7ea2df8
(gdb) pr
(expr_list:REG_ARGS_SIZE (const_int 0 [0])
    (nil))
(gdb) call debug_rtx_range ($3, 0)
(insn 34 33 0 (set (reg/f:SI 14 sp)
        (mem/f/c:SI (reg/f:SI 14 sp) [2 p+0 S4 A8])) -1
     (expr_list:REG_ARGS_SIZE (const_int 0 [0])
        (nil)))

(nil)

(gdb) bt
#0  fancy_abort (file=0xd4f878 "/tmp/hpautotest-gcc1/gcc/gcc/expr.c",
line=3978, 
    function=0xd50d50 "fixup_args_size_notes") at
/tmp/hpautotest-gcc1/gcc/gcc/diagnostic.c:1182
#1  0x0000000000698222 in fixup_args_size_notes (prev=0x0, last=<value
optimized out>, 
    end_args_size=<value optimized out>) at
/tmp/hpautotest-gcc1/gcc/gcc/expr.c:3978
#2  0x000000000067aefa in try_split (pat=<value optimized out>,
trial=0x7ffff7ea47e0, last=1)
    at /tmp/hpautotest-gcc1/gcc/gcc/emit-rtl.c:3602
#3  0x0000000000886e62 in split_insn (insn=0x7ffff7ea47e0) at
/tmp/hpautotest-gcc1/gcc/gcc/recog.c:2850
#4  0x0000000000887105 in split_all_insns () at
/tmp/hpautotest-gcc1/gcc/gcc/recog.c:2940
#5  0x00000000008871d3 in rest_of_handle_split_after_reload (this=<value
optimized out>)
    at /tmp/hpautotest-gcc1/gcc/gcc/recog.c:3889
#6  (anonymous namespace)::pass_split_after_reload::execute (this=<value
optimized out>)
    at /tmp/hpautotest-gcc1/gcc/gcc/recog.c:3918
#7  0x000000000086680a in execute_one_pass (pass=0x1171600) at
/tmp/hpautotest-gcc1/gcc/gcc/passes.c:2226
#8  0x0000000000866a86 in execute_pass_list (pass=0x1171600) at
/tmp/hpautotest-gcc1/gcc/gcc/passes.c:2279
#9  0x0000000000866a98 in execute_pass_list (pass=0x11714e0) at
/tmp/hpautotest-gcc1/gcc/gcc/passes.c:2280
#10 0x0000000000866a98 in execute_pass_list (pass=0x11703a0) at
/tmp/hpautotest-gcc1/gcc/gcc/passes.c:2280
#11 0x00000000005f3699 in expand_function (node=0x7ffff7eb5000) at
/tmp/hpautotest-gcc1/gcc/gcc/cgraphunit.c:1763
#12 0x00000000005f557d in expand_all_functions () at
/tmp/hpautotest-gcc1/gcc/gcc/cgraphunit.c:1897
#13 compile () at /tmp/hpautotest-gcc1/gcc/gcc/cgraphunit.c:2241
#14 0x00000000005f6c6a in finalize_compilation_unit () at
/tmp/hpautotest-gcc1/gcc/gcc/cgraphunit.c:2318
#15 0x00000000004a90f3 in c_write_global_declarations () at
/tmp/hpautotest-gcc1/gcc/gcc/c/c-decl.c:10400
#16 0x00000000008e560d in compile_file () at
/tmp/hpautotest-gcc1/gcc/gcc/toplev.c:561
#17 0x00000000008e6826 in do_compile (argc=15, argv=0x7fffffffe028) at
/tmp/hpautotest-gcc1/gcc/gcc/toplev.c:1887
#18 toplev_main (argc=15, argv=0x7fffffffe028) at
/tmp/hpautotest-gcc1/gcc/gcc/toplev.c:1963
#19 0x00000037d421eb1d in __libc_start_main () from /lib64/libc.so.6
#20 0x00000000004952c9 in _start ()
(gdb) up
#3  0x0000000000886e62 in split_insn (insn=0x7ffff7ea47e0) at
/tmp/hpautotest-gcc1/gcc/gcc/recog.c:2850
2850      rtx last = try_split (PATTERN (insn), insn, 1);
(gdb) p insn
$5 = (rtx_def *) 0x7ffff7ea47e0
(gdb) pr
(insn 14 13 32 2 (set (reg/f:SI 14 sp)
        (mem/f/c:SI (symbol_ref:SI ("p") <var_decl 0x7ffff7eb2000 p>) [2 p+0 S4
A8])) /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:15 37
{*movsi_internal}
     (expr_list:REG_ARGS_SIZE (const_int 0 [0])
        (nil)))
(gdb) up
#4  0x0000000000887105 in split_all_insns () at
/tmp/hpautotest-gcc1/gcc/gcc/recog.c:2940
2940                      if (split_insn (insn))
(gdb) p insn
$6 = (rtx_def *) 0x7ffff7ea47e0
(failing sequence trying to call get_insns() omitted, instead using the
equivalent)
(gdb) call debug_rtx_range ((&x_rtl)->emit.x_first_insn, 0)
(note 1 0 3 NOTE_INSN_DELETED)

(note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

(note 2 3 7 2 NOTE_INSN_FUNCTION_BEG)

(insn 7 2 8 2 (set (mem/f/c:SI (symbol_ref:SI ("p") <var_decl 0x7ffff7eb2000
p>) [2 p+0 S4 A8])
        (reg/f:SI 14 sp))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:13 37 {*movsi_internal}
     (nil))

(note 8 7 9 2 NOTE_INSN_DELETED)

(insn 9 8 31 2 (set (reg/f:SI 0 r0 [31])
        (symbol_ref:SI ("bar") [flags 0x41] <function_decl 0x7ffff7ea1a00
bar>)) /tmp/hpautotest-gcc1/gcc/gcc/testsuite/
gcc.dg/pr50251.c:14 37 {*movsi_internal}
     (expr_list:REG_EQUIV (symbol_ref:SI ("bar") [flags 0x41] <function_decl
0x7ffff7ea1a00 bar>)
        (nil)))

(insn 31 9 10 2 (set (reg:SI 10 r10)
        (const_int -4 [0xfffffffffffffffc]))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:14 37 {*movsi_internal}
     (nil))

(insn 10 31 11 2 (set (reg:SI 10 r10)
        (plus:SI (reg:SI 10 r10)
            (reg/f:SI 8 r8)))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:14 74 {*addsi3_non_v32}
     (expr_list:REG_EQUAL (plus:SI (reg/f:SI 8 r8)
            (const_int -4 [0xfffffffffffffffc]))
        (nil)))

(call_insn 11 10 12 2 (parallel [
            (call (mem:QI (reg/f:SI 0 r0 [31]) [0 bar S1 A8])
                (const_int 0 [0]))
            (clobber (reg:SI 16 srp))
        ]) /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:14 220
{*expanded_call_non_v32}
     (nil)
    (expr_list:REG_UNUSED (use (reg:SI 10 r10))
        (nil)))

(insn 12 11 13 2 (clobber (mem:BLK (scratch) [0  A8]))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:15 -1
     (nil))

(insn 13 12 14 2 (clobber (mem:BLK (reg/f:SI 14 sp) [0  A8]))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:15 -1
     (nil))

(insn 14 13 32 2 (set (reg/f:SI 14 sp)
        (mem/f/c:SI (symbol_ref:SI ("p") <var_decl 0x7ffff7eb2000 p>) [2 p+0 S4
A8])) /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:15 37
{*movsi_internal}
     (expr_list:REG_ARGS_SIZE (const_int 0 [0])
        (nil)))

(insn 32 14 17 2 (set (reg:SI 10 r10)
        (const_int -4 [0xfffffffffffffffc]))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:16 37 {*movsi_internal}
     (nil))

(insn 17 32 18 2 (set (reg:SI 10 r10)
        (plus:SI (reg:SI 10 r10)
            (reg/f:SI 8 r8)))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:16 74 {*addsi3_non_v32}
     (expr_list:REG_EQUAL (plus:SI (reg/f:SI 8 r8)
            (const_int -4 [0xfffffffffffffffc]))
        (nil)))

(call_insn 18 17 23 2 (parallel [
            (call (mem:QI (reg/f:SI 0 r0 [31]) [0 bar S1 A8])
                (const_int 0 [0]))
            (clobber (reg:SI 16 srp))
        ]) /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:16 220
{*expanded_call_non_v32}
     (nil)
    (expr_list:REG_UNUSED (use (reg:SI 10 r10))
        (nil)))

(insn 23 18 26 2 (set (reg/i:SI 10 r10)
        (const_int 0 [0]))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:18 37 {*movsi_internal}
     (nil))

(insn 26 23 29 2 (use (reg/i:SI 10 r10))
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/pr50251.c:18 -1
     (nil))

(note 29 26 0 NOTE_INSN_DELETED)

(nil) 

(gdb) 


Author of (all) suspect commits in revision range CC:ed.


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
@ 2013-12-23 13:09 ` jakub at gcc dot gnu.org
  2013-12-23 14:26 ` hp at gcc dot gnu.org
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-12-23 13:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Are you sure it didn't fail before r205026 as well, because what my patch did
was essentially restore the old behavior unless strictly necessary (then it
would keep the r205026+ behavior).


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
  2013-12-23 13:09 ` [Bug middle-end/59584] " jakub at gcc dot gnu.org
@ 2013-12-23 14:26 ` hp at gcc dot gnu.org
  2013-12-23 18:39 ` jakub at gcc dot gnu.org
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 14:26 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #1)
> Are you sure it didn't fail before r205026 as well, because what my patch
> did was essentially restore the old behavior unless strictly necessary (then
> it would keep the r205026+ behavior).

Sounds like you have a good grip on the circumstances. :)
There was no reason to check for earlier failure ranges, but it certainly
failed before and with r205023, started passing with r205046 up until as noted.
So, I guess this will be a low-priority PR, particularly as it uses an odd
builtin-construct very unlikely to be seen in user code - not to mention it
will also be hidden behind a target-specific fix.


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
  2013-12-23 13:09 ` [Bug middle-end/59584] " jakub at gcc dot gnu.org
  2013-12-23 14:26 ` hp at gcc dot gnu.org
@ 2013-12-23 18:39 ` jakub at gcc dot gnu.org
  2013-12-23 22:19 ` hp at gcc dot gnu.org
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-12-23 18:39 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So is this actually a regression then (I mean, has it worked in 4.8 or 4.7
etc.)?


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2013-12-23 22:19 ` hp at gcc dot gnu.org
@ 2013-12-23 22:19 ` hp at gcc dot gnu.org
  2013-12-23 22:33 ` hp at gcc dot gnu.org
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 22:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
The actual bug causing the ICE is that the combination of
expr.c:find_args_size_adjust and expr.c:fixup_args_size_notes\
 can't handle a define_split matching for the stack-adjustment assignment
instruction emitted by __builtin_stack_restor\
e.

I'm going to mark my commit for the CRIS port with this PR number (since it
fixes the regression per se), but it will j\
ust remove the define_split part happening for the CRIS port; the bug is still
there so the PR should not be closed.
Though, I'll change the title.


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2013-12-23 18:39 ` jakub at gcc dot gnu.org
@ 2013-12-23 22:19 ` hp at gcc dot gnu.org
  2013-12-23 22:19 ` hp at gcc dot gnu.org
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 22:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #3)
> So is this actually a regression then (I mean, has it worked in 4.8 or 4.7
> etc.)?

That's not the definition.  At one point it work on trunk (4.9) thus it's a
regression.


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

* [Bug middle-end/59584] [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily"
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2013-12-23 22:19 ` hp at gcc dot gnu.org
@ 2013-12-23 22:33 ` hp at gcc dot gnu.org
  2013-12-23 22:35 ` [Bug middle-end/59584] [4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore hp at gcc dot gnu.org
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 22:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
Author: hp
Date: Mon Dec 23 22:33:52 2013
New Revision: 206187

URL: http://gcc.gnu.org/viewcvs?rev=206187&root=gcc&view=rev
Log:
    PR middle-end/59584
    * config/cris/predicates.md (cris_nonsp_register_operand):
    New define_predicate.
    * config/cris/cris.md: Replace register_operand with
    cris_nonsp_register_operand for destinations in all
    define_splits where a register is set more than once.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/cris/cris.md
    trunk/gcc/config/cris/predicates.md


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

* [Bug middle-end/59584] [4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2013-12-23 22:33 ` hp at gcc dot gnu.org
@ 2013-12-23 22:35 ` hp at gcc dot gnu.org
  2014-01-07 11:53 ` rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2013-12-23 22:35 UTC (permalink / raw)
  To: gcc-bugs

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

Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P5
            Summary|[4.9 Regression]:           |[4.9 Regression]: cannot
                   |gcc.dg/pr50251.c ICE        |handle define_split for
                   |exposed by "Don't reject    |insn emitted for
                   |TER unnecessarily"          |__builtin_stack_restore


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

* [Bug middle-end/59584] [4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2013-12-23 22:35 ` [Bug middle-end/59584] [4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore hp at gcc dot gnu.org
@ 2014-01-07 11:53 ` rguenth at gcc dot gnu.org
  2014-01-08  0:53 ` [Bug middle-end/59584] [4.8/4.9 " hp at gcc dot gnu.org
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-01-07 11:53 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.9.0


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

* [Bug middle-end/59584] [4.8/4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2014-01-07 11:53 ` rguenth at gcc dot gnu.org
@ 2014-01-08  0:53 ` hp at gcc dot gnu.org
  2014-01-08 14:12 ` hp at gcc dot gnu.org
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2014-01-08  0:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
With the latest backports by Jakub (206335:206398], it regressed on the 4.8
branch.


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

* [Bug middle-end/59584] [4.8/4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2014-01-08  0:53 ` [Bug middle-end/59584] [4.8/4.9 " hp at gcc dot gnu.org
@ 2014-01-08 14:12 ` hp at gcc dot gnu.org
  2014-01-09  0:23 ` hp at gcc dot gnu.org
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2014-01-08 14:12 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #8)
> I still think this is not the correct definition of regression, I believe
> regression is regressing against released compiler version.  If somebody
> commits a wrong change that magically fixes something and has to be reverted
> the next day, the magically fixed issue doesn't all of sudden become a
> regression because of that.

Your suggestion to split up that definition would require *separate*
definitions, markings and other related complications.  Let's take that to the
list if you insist.

> Not to mention that Richard's change has not
> been a fix for that, just unrelated change that made the problem in the cris
> port latent.

I see, on 2013-12-04, r205685:205709 for the 4.8 branch.


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

* [Bug middle-end/59584] [4.8/4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2014-01-08 14:12 ` hp at gcc dot gnu.org
@ 2014-01-09  0:23 ` hp at gcc dot gnu.org
  2014-04-22 11:35 ` [Bug middle-end/59584] [4.8/4.9/4.10 " jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2014-01-09  0:23 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
Author: hp
Date: Thu Jan  9 00:23:22 2014
New Revision: 206453

URL: http://gcc.gnu.org/viewcvs?rev=206453&root=gcc&view=rev
Log:
    Backport from mainline
    2013-12-23  Hans-Peter Nilsson  <hp@axis.com>

    PR middle-end/59584
    * config/cris/predicates.md (cris_nonsp_register_operand):
    New define_predicate.
    * config/cris/cris.md: Replace register_operand with
    cris_nonsp_register_operand for destinations in all
    define_splits where a register is set more than once.

Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/config/cris/cris.md
    branches/gcc-4_8-branch/gcc/config/cris/predicates.md


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2014-01-09  0:23 ` hp at gcc dot gnu.org
@ 2014-04-22 11:35 ` jakub at gcc dot gnu.org
  2014-05-06 13:46 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-04-22 11:35 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.9.0                       |4.9.1

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


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2014-04-22 11:35 ` [Bug middle-end/59584] [4.8/4.9/4.10 " jakub at gcc dot gnu.org
@ 2014-05-06 13:46 ` rguenth at gcc dot gnu.org
  2014-05-06 19:01 ` [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore hp at gcc dot gnu.org
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-06 13:46 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

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


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2014-05-06 13:46 ` rguenth at gcc dot gnu.org
@ 2014-05-06 19:01 ` hp at gcc dot gnu.org
  2014-05-07  8:24 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2014-05-06 19:01 UTC (permalink / raw)
  To: gcc-bugs

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

Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.8/4.9/4.10 Regression]:  |[4.8/4.9/4.10 Regression]:
                   |cannot handle define_split  |regressions related to
                   |for insn emitted for        |__builtin_stack_restore
                   |__builtin_stack_restore     |

--- Comment #13 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #12)
> Fixed.

I don't think the underlying bug as described in comment #5 is fixed.

I don't have time to fix that so I'll just change the title to reflect what's
fixed: the test-results regressions. :/


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2014-05-06 19:01 ` [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore hp at gcc dot gnu.org
@ 2014-05-07  8:24 ` rguenth at gcc dot gnu.org
  2014-05-08  1:49 ` hp at gcc dot gnu.org
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-07  8:24 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
   Last reconfirmed|                            |2014-05-07
         Resolution|FIXED                       |---
     Ever confirmed|0                           |1

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, but it's not clear to me what the bug is and why it's not a target bug
fixed by your changes.


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (14 preceding siblings ...)
  2014-05-07  8:24 ` rguenth at gcc dot gnu.org
@ 2014-05-08  1:49 ` hp at gcc dot gnu.org
  2014-05-08  7:53 ` rguenth at gcc dot gnu.org
  2014-06-12 13:31 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: hp at gcc dot gnu.org @ 2014-05-08  1:49 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Hans-Peter Nilsson from comment #15)
> Thus, I'm fine with closing this for the regressions but not exactly for the
> issue in comment #5 for which the bug was opened;

FWIW, I actually meant "for which the bug was kept open".

Anyways, with the title change and none of us having sufficient interest and
resources, I suggest re-closing this PR.  I will do this myself in a week,
assuming I remember and no-one else takes action.


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (15 preceding siblings ...)
  2014-05-08  1:49 ` hp at gcc dot gnu.org
@ 2014-05-08  7:53 ` rguenth at gcc dot gnu.org
  2014-06-12 13:31 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-05-08  7:53 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Thus, fixed ;)


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

* [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore
  2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
                   ` (16 preceding siblings ...)
  2014-05-08  7:53 ` rguenth at gcc dot gnu.org
@ 2014-06-12 13:31 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-06-12 13:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59584
Bug 59584 depends on bug 58956, which changed state.

Bug 58956 Summary: [4.7 Regression] wrong code at -O1 and above (affecting gcc 4.6 to trunk)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58956

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


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

end of thread, other threads:[~2014-06-12 13:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-23 13:04 [Bug middle-end/59584] New: [4.9 Regression]: gcc.dg/pr50251.c ICE exposed by "Don't reject TER unnecessarily" hp at gcc dot gnu.org
2013-12-23 13:09 ` [Bug middle-end/59584] " jakub at gcc dot gnu.org
2013-12-23 14:26 ` hp at gcc dot gnu.org
2013-12-23 18:39 ` jakub at gcc dot gnu.org
2013-12-23 22:19 ` hp at gcc dot gnu.org
2013-12-23 22:19 ` hp at gcc dot gnu.org
2013-12-23 22:33 ` hp at gcc dot gnu.org
2013-12-23 22:35 ` [Bug middle-end/59584] [4.9 Regression]: cannot handle define_split for insn emitted for __builtin_stack_restore hp at gcc dot gnu.org
2014-01-07 11:53 ` rguenth at gcc dot gnu.org
2014-01-08  0:53 ` [Bug middle-end/59584] [4.8/4.9 " hp at gcc dot gnu.org
2014-01-08 14:12 ` hp at gcc dot gnu.org
2014-01-09  0:23 ` hp at gcc dot gnu.org
2014-04-22 11:35 ` [Bug middle-end/59584] [4.8/4.9/4.10 " jakub at gcc dot gnu.org
2014-05-06 13:46 ` rguenth at gcc dot gnu.org
2014-05-06 19:01 ` [Bug middle-end/59584] [4.8/4.9/4.10 Regression]: regressions related to __builtin_stack_restore hp at gcc dot gnu.org
2014-05-07  8:24 ` rguenth at gcc dot gnu.org
2014-05-08  1:49 ` hp at gcc dot gnu.org
2014-05-08  7:53 ` rguenth at gcc dot gnu.org
2014-06-12 13:31 ` 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).