* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
@ 2014-08-29 11:21 ` ro at gcc dot gnu.org
2014-08-29 11:36 ` dmalcolm at redhat dot com
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: ro at gcc dot gnu.org @ 2014-08-29 11:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |5.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
2014-08-29 11:21 ` [Bug bootstrap/62304] " ro at gcc dot gnu.org
@ 2014-08-29 11:36 ` dmalcolm at redhat dot com
2014-08-29 11:39 ` ro at CeBiTec dot Uni-Bielefeld.DE
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: dmalcolm at redhat dot com @ 2014-08-29 11:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
Dave Malcolm <dmalcolm at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dmalcolm at redhat dot com
--- Comment #1 from Dave Malcolm <dmalcolm at redhat dot com> ---
The crash in find_dead_or_set_registers is the one discussed in:
https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02619.html
and I introduced it in r214693 (aka patch #225)
The crash in follow_jumps is similar to it, and occurs here:
new_thread = follow_jumps (JUMP_LABEL_AS_INSN (new_thread), insn,
&crossing);
where JUMP_LABEL_AS_INSN erroneously tries to coerce JUMP_LABEL (new_thread) to
be an insn, but it's a RETURN. I introduced this one in r214684 (aka patch
#218)
Sorry; am working on a fix.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
2014-08-29 11:21 ` [Bug bootstrap/62304] " ro at gcc dot gnu.org
2014-08-29 11:36 ` dmalcolm at redhat dot com
@ 2014-08-29 11:39 ` ro at CeBiTec dot Uni-Bielefeld.DE
2014-08-29 15:35 ` dmalcolm at redhat dot com
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2014-08-29 11:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #1 from Dave Malcolm <dmalcolm at redhat dot com> ---
> The crash in find_dead_or_set_registers is the one discussed in:
> https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02619.html
> and I introduced it in r214693 (aka patch #225)
>
> The crash in follow_jumps is similar to it, and occurs here:
> new_thread = follow_jumps (JUMP_LABEL_AS_INSN (new_thread), insn,
> &crossing);
> where JUMP_LABEL_AS_INSN erroneously tries to coerce JUMP_LABEL (new_thread) to
> be an insn, but it's a RETURN. I introduced this one in r214684 (aka patch
> #218)
I see, thanks. I completely lost track what's happening in this patch
series...
> Sorry; am working on a fix.
Great, thanks.
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (2 preceding siblings ...)
2014-08-29 11:39 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2014-08-29 15:35 ` dmalcolm at redhat dot com
2014-08-29 15:58 ` dmalcolm at redhat dot com
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: dmalcolm at redhat dot com @ 2014-08-29 15:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #3 from Dave Malcolm <dmalcolm at redhat dot com> ---
Do you have preprocessed source handy for the reorg.c crash?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (3 preceding siblings ...)
2014-08-29 15:35 ` dmalcolm at redhat dot com
@ 2014-08-29 15:58 ` dmalcolm at redhat dot com
2014-08-29 18:56 ` dmalcolm at redhat dot com
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: dmalcolm at redhat dot com @ 2014-08-29 15:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #4 from Dave Malcolm <dmalcolm at redhat dot com> ---
(In reply to Dave Malcolm from comment #3)
> Do you have preprocessed source handy for the reorg.c crash?
No need; I've reproduced it locally now.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (4 preceding siblings ...)
2014-08-29 15:58 ` dmalcolm at redhat dot com
@ 2014-08-29 18:56 ` dmalcolm at redhat dot com
2014-08-29 21:39 ` sje at gcc dot gnu.org
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: dmalcolm at redhat dot com @ 2014-08-29 18:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #5 from Dave Malcolm <dmalcolm at redhat dot com> ---
Created attachment 33416
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33416&action=edit
Candidate patch. Bootstrapped on x86_64; seems to work on stage1 cris and
sparc
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (5 preceding siblings ...)
2014-08-29 18:56 ` dmalcolm at redhat dot com
@ 2014-08-29 21:39 ` sje at gcc dot gnu.org
2014-08-30 14:09 ` ro at CeBiTec dot Uni-Bielefeld.DE
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: sje at gcc dot gnu.org @ 2014-08-29 21:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #6 from Steve Ellcey <sje at gcc dot gnu.org> ---
(In reply to Dave Malcolm from comment #5)
> Created attachment 33416 [details]
> Candidate patch. Bootstrapped on x86_64; seems to work on stage1 cris and
> sparc
This patch fixed my MIPS build. I am running the testsuite now and it
looks good so far.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (6 preceding siblings ...)
2014-08-29 21:39 ` sje at gcc dot gnu.org
@ 2014-08-30 14:09 ` ro at CeBiTec dot Uni-Bielefeld.DE
2014-08-30 14:34 ` dmalcolm at gcc dot gnu.org
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2014-08-30 14:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #5 from Dave Malcolm <dmalcolm at redhat dot com> ---
> Created attachment 33416
> --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33416&action=edit
> Candidate patch. Bootstrapped on x86_64; seems to work on stage1 cris and
> sparc
With this patch, sparc-sun-solaris2.11 bootstrap completed
successfully. Compared to the last one of a week ago, there are two
testsuite regressions, but I assume they are unrelated:
FAIL: gcc.dg/20111227-2.c scan-rtl-dump ree "Elimination opportunities = 3
realized = 3"
FAIL: gcc.dg/vect/vect-33.c scan-tree-dump-times vect "Alignment of access
forced using versioning" 1
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (7 preceding siblings ...)
2014-08-30 14:09 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2014-08-30 14:34 ` dmalcolm at gcc dot gnu.org
2014-11-18 15:02 ` jakub at gcc dot gnu.org
2014-11-18 20:50 ` ebotcazou at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2014-08-30 14:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
--- Comment #8 from dmalcolm at gcc dot gnu.org ---
Author: dmalcolm
Date: Sat Aug 30 14:34:02 2014
New Revision: 214752
URL: https://gcc.gnu.org/viewcvs?rev=214752&root=gcc&view=rev
Log:
PR bootstrap/62304
* gcc/reorg.c (skip_consecutive_labels): Convert return type and
param back from rtx_insn * to rtx. Rename param from "label" to
"label_or_return", reintroducing "label" as an rtx_insn * after
we've ensured it's not a RETURN.
(first_active_target_insn): Likewise for return type and param;
add a checked cast to rtx_insn * once we've ensured "insn" is not
a RETURN.
(steal_delay_list_from_target): Convert param "pnew_thread" back
from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
with JUMP_LABEL.
(own_thread_p): Convert param "thread" back from an rtx_insn * to
an rtx. Introduce local rtx_insn * "thread_insn" with a checked
cast once we've established we're not dealing with a RETURN,
renaming subsequent uses of "thread" to "thread_insn".
(fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
to JUMP_LABEL.
(follow_jumps): Convert return type and param "label" from
rtx_insn * back to rtx. Move initialization of "value" to after
the handling for ANY_RETURN_P, adding a checked cast there to
rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
rename to "this_label_or_return", reintroducing "this_label" as
an rtx_insn * once we've handled the case where it could be an
ANY_RETURN_P.
(fill_slots_from_thread): Rename param "thread" to
"thread_or_return", converting from an rtx_insn * back to an rtx.
Reintroduce name "thread" as an rtx_insn * local with a checked
cast once we've handled the case of it being an ANY_RETURN_P.
Convert local "new_thread" from an rtx_insn * back to an rtx.
Add a checked cast when assigning to "trial" from "new_thread".
Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
checked cast to rtx_insn * from "new_thread" when invoking
get_label_before.
(fill_eager_delay_slots): Convert locals "target_label",
"insn_at_target" from rtx_insn * back to rtx.
Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
(relax_delay_slots): Convert locals "trial", "target_label" from
rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
invoking update_block.
(dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
* resource.h (mark_target_live_regs): Undo erroneous conversion
of second param of r214693, converting it back from rtx_insn * to
rtx, since it could be a RETURN.
* resource.c (find_dead_or_set_registers): Similarly, convert
param "jump_target" back from an rtx_insn ** to an rtx *, as we
could be writing back a RETURN. Rename local rtx_insn * "next" to
"next_insn", and introduce "lab_or_return" as a local rtx,
handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
(mark_target_live_regs): Undo erroneous conversion
of second param of r214693, converting it back from rtx_insn * to
rtx, since it could be a RETURN. Rename it from "target" to
"target_maybe_return", reintroducing the name "target" as a local
rtx_insn * with a checked cast, after we've handled the case of
ANY_RETURN_P.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/reorg.c
trunk/gcc/resource.c
trunk/gcc/resource.h
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (8 preceding siblings ...)
2014-08-30 14:34 ` dmalcolm at gcc dot gnu.org
@ 2014-11-18 15:02 ` jakub at gcc dot gnu.org
2014-11-18 20:50 ` ebotcazou at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-11-18 15:02 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Is this now fixed?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug bootstrap/62304] [5 regression] ICE in follow_jumps, find_dead_or_set_registers
2014-08-29 11:19 [Bug bootstrap/62304] New: [5 regression] ICE in follow_jumps, find_dead_or_set_registers ro at gcc dot gnu.org
` (9 preceding siblings ...)
2014-11-18 15:02 ` jakub at gcc dot gnu.org
@ 2014-11-18 20:50 ` ebotcazou at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2014-11-18 20:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62304
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |FIXED
--- Comment #10 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Sure.
^ permalink raw reply [flat|nested] 12+ messages in thread