* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
@ 2011-03-24 16:37 ` rguenth at gcc dot gnu.org
2011-03-24 17:23 ` ubizjak at gmail dot com
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-03-24 16:37 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.6.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
2011-03-24 16:37 ` [Bug target/48273] " rguenth at gcc dot gnu.org
@ 2011-03-24 17:23 ` ubizjak at gmail dot com
2011-03-24 17:32 ` ubizjak at gmail dot com
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ubizjak at gmail dot com @ 2011-03-24 17:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|x86_64-pc-linux-gnu |i686-pc-linux-gnu
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.03.24 16:43:05
Ever Confirmed|0 |1
--- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2011-03-24 16:43:05 UTC ---
-m32 is also needed to trigger this ICE, so i686-pc-linux-gnu.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
2011-03-24 16:37 ` [Bug target/48273] " rguenth at gcc dot gnu.org
2011-03-24 17:23 ` ubizjak at gmail dot com
@ 2011-03-24 17:32 ` ubizjak at gmail dot com
2011-03-24 17:33 ` zsojka at seznam dot cz
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ubizjak at gmail dot com @ 2011-03-24 17:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #2 from Uros Bizjak <ubizjak at gmail dot com> 2011-03-24 16:46:08 UTC ---
(gdb) bt
#0 fancy_abort (file=0xd77f00 "../../gcc-svn/trunk/gcc/sel-sched-ir.c",
line=5604, function=0xd78e40 "create_copy_of_insn_rtx")
at ../../gcc-svn/trunk/gcc/diagnostic.c:892
#1 0x00000000007bac89 in create_copy_of_insn_rtx (insn_rtx=0x7ffff1f33780)
at ../../gcc-svn/trunk/gcc/sel-sched-ir.c:5604
#2 0x00000000007cdf30 in emit_bookkeeping_insn (insn=0x7ffff1f33820,
lparams=0x7fffffffd870, static_params=Unhandled dwarf expression opcode
0xf3
)
at ../../gcc-svn/trunk/gcc/sel-sched.c:4767
#3 generate_bookkeeping_insn (insn=0x7ffff1f33820, lparams=0x7fffffffd870,
static_params=Unhandled dwarf expression opcode 0xf3
) at ../../gcc-svn/trunk/gcc/sel-sched.c:4805
#4 move_op_at_first_insn (insn=0x7ffff1f33820, lparams=0x7fffffffd870,
static_params=Unhandled dwarf expression opcode 0xf3
) at ../../gcc-svn/trunk/gcc/sel-sched.c:6073
#5 0x00000000007c7009 in code_motion_path_driver (insn=0x7ffff1f33820,
orig_ops=0x0, path=<value optimized out>, local_params_in=0x7fffffffd870,
static_params=0x7fffffffdaa0) at ../../gcc-svn/trunk/gcc/sel-sched.c:6638
#6 0x00000000007c668f in code_motion_process_successors (insn=0x7ffff1f33aa0,
orig_ops=0x1414978, path=0x14149f0, static_params=0x7fffffffdaa0)
at ../../gcc-svn/trunk/gcc/sel-sched.c:6354
#7 0x00000000007c71dc in code_motion_path_driver (insn=0x7ffff1f33aa0,
orig_ops=0x1414978, path=0x14149f0, local_params_in=0x7fffffffda70,
static_params=0x7fffffffdaa0) at ../../gcc-svn/trunk/gcc/sel-sched.c:6600
(gdb) up
#1 0x00000000007bac89 in create_copy_of_insn_rtx (insn_rtx=0x7ffff1f33780)
at ../../gcc-svn/trunk/gcc/sel-sched-ir.c:5604
5604 gcc_assert (NONJUMP_INSN_P (insn_rtx));
(gdb) li
5599
5600 if (DEBUG_INSN_P (insn_rtx))
5601 return create_insn_rtx_from_pattern (copy_rtx (PATTERN (insn_rtx)),
5602 insn_rtx);
5603
5604 gcc_assert (NONJUMP_INSN_P (insn_rtx));
5605
5606 res = create_insn_rtx_from_pattern (copy_rtx (PATTERN (insn_rtx)),
5607 NULL_RTX);
5608 return res;
(gdb) p debug_rtx (insn_rtx)
(call_insn 6 0 0 3 (call (mem:QI (symbol_ref:SI ("bar") [flags 0x41]
<function_decl 0x7ffff1f24c00 bar>) [0 bar S1 A8])
(const_int 0 [0])) pr48273.c:6 618 {*call_0}
(nil)
(nil))
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (2 preceding siblings ...)
2011-03-24 17:32 ` ubizjak at gmail dot com
@ 2011-03-24 17:33 ` zsojka at seznam dot cz
2011-03-24 18:46 ` amonakov at gcc dot gnu.org
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: zsojka at seznam dot cz @ 2011-03-24 17:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #3 from Zdenek Sojka <zsojka at seznam dot cz> 2011-03-24 16:54:05 UTC ---
(In reply to comment #1)
> -m32 is also needed to trigger this ICE, so i686-pc-linux-gnu.
Yes, sorry, originally I tested the code as C++ code, and in that case, -m32 is
not needed.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (3 preceding siblings ...)
2011-03-24 17:33 ` zsojka at seznam dot cz
@ 2011-03-24 18:46 ` amonakov at gcc dot gnu.org
2011-04-06 14:40 ` amonakov at gcc dot gnu.org
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: amonakov at gcc dot gnu.org @ 2011-03-24 18:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Alexander Monakov <amonakov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |amonakov at gcc dot gnu.org
AssignedTo|unassigned at gcc dot |amonakov at gcc dot gnu.org
|gnu.org |
--- Comment #4 from Alexander Monakov <amonakov at gcc dot gnu.org> 2011-03-24 17:32:39 UTC ---
So the assert disagrees with the rest of the scheduler on whether calls may be
cloned. I'll talk to Andrey about amending one or the other.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (4 preceding siblings ...)
2011-03-24 18:46 ` amonakov at gcc dot gnu.org
@ 2011-04-06 14:40 ` amonakov at gcc dot gnu.org
2011-04-07 7:25 ` abel at gcc dot gnu.org
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: amonakov at gcc dot gnu.org @ 2011-04-06 14:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #5 from Alexander Monakov <amonakov at gcc dot gnu.org> 2011-04-06 14:40:28 UTC ---
There's little value in allowing bookkeeping for calls, and the (untested yet)
patch below forces calls to be unique. The test case also shows that our
remove_insns_that_need_bookkeeping function works incorrectly for infinite
loops (the single basic block dominates itself, and SPEC of the pipelined
instruction is not increased because there's no conditional branch). It's
possible to fix up that function by also looking at INSN_SCHED_TIMES, but the
simpler way is to forbid pipelining for infinite loops.
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index 67484dd..95c1431 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -2905,6 +2905,7 @@ init_global_and_expr_for_insn (insn_t insn)
if (CANT_MOVE (insn)
|| INSN_ASM_P (insn)
|| SCHED_GROUP_P (insn)
+ || CALL_P (insn)
/* Exception handling insns are always unique. */
|| (cfun->can_throw_non_call_exceptions && can_throw_internal
(insn))
/* TRAP_IF though have an INSN code is control_flow_insn_p (). */
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 0e8173b..415eaa4 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -6781,7 +6781,9 @@ sel_setup_region_sched_flags (void)
bookkeeping_p = 1;
pipelining_p = (bookkeeping_p
&& (flag_sel_sched_pipelining != 0)
- && current_loop_nest != NULL);
+ && current_loop_nest != NULL
+ /* Check that there is at least one exit. */
+ && current_loop_nest->exits->next->e);
max_insns_to_rename = PARAM_VALUE (PARAM_SELSCHED_INSNS_TO_RENAME);
max_ws = MAX_WS;
}
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (5 preceding siblings ...)
2011-04-06 14:40 ` amonakov at gcc dot gnu.org
@ 2011-04-07 7:25 ` abel at gcc dot gnu.org
2011-04-07 8:00 ` abel at gcc dot gnu.org
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: abel at gcc dot gnu.org @ 2011-04-07 7:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Andrey Belevantsev <abel at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |abel at gcc dot gnu.org
--- Comment #6 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-04-07 07:25:19 UTC ---
(In reply to comment #5)
> + && current_loop_nest != NULL
> + /* Check that there is at least one exit. */
> + && current_loop_nest->exits->next->e);
This exposes loop optimizer internals, so please add a helper to cfgloop.c
instead.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (6 preceding siblings ...)
2011-04-07 7:25 ` abel at gcc dot gnu.org
@ 2011-04-07 8:00 ` abel at gcc dot gnu.org
2011-04-08 11:49 ` amonakov at gcc dot gnu.org
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: abel at gcc dot gnu.org @ 2011-04-07 8:00 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #7 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-04-07 08:00:28 UTC ---
And some of our sel-sched-ir.h helpers can be moved to cfgloop.c as well (e.g.
get_loop_exit_edges_unique_dests).
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (7 preceding siblings ...)
2011-04-07 8:00 ` abel at gcc dot gnu.org
@ 2011-04-08 11:49 ` amonakov at gcc dot gnu.org
2011-06-12 13:05 ` [Bug target/48273] [4.6 " rguenth at gcc dot gnu.org
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: amonakov at gcc dot gnu.org @ 2011-04-08 11:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #8 from Alexander Monakov <amonakov at gcc dot gnu.org> 2011-04-08 11:49:47 UTC ---
Author: amonakov
Date: Fri Apr 8 11:49:43 2011
New Revision: 172175
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172175
Log:
PR target/48273
* cfgloop.h (loop_has_exit_edges): New helper.
* sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
non-clonable.
* sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
that have no exit edges.
testsuite:
* g++.dg/opt/pr48273.C: New.
Added:
trunk/gcc/testsuite/g++.dg/opt/pr48273.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgloop.h
trunk/gcc/sel-sched-ir.c
trunk/gcc/sel-sched.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (8 preceding siblings ...)
2011-04-08 11:49 ` amonakov at gcc dot gnu.org
@ 2011-06-12 13:05 ` rguenth at gcc dot gnu.org
2011-06-27 16:27 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-12 13:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (9 preceding siblings ...)
2011-06-12 13:05 ` [Bug target/48273] [4.6 " rguenth at gcc dot gnu.org
@ 2011-06-27 16:27 ` jakub at gcc dot gnu.org
2011-06-28 12:20 ` amonakov at gcc dot gnu.org
2011-06-28 12:22 ` amonakov at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-06-27 16:27 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.6.1 |4.6.2
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-27 12:33:17 UTC ---
GCC 4.6.1 is being released.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (10 preceding siblings ...)
2011-06-27 16:27 ` jakub at gcc dot gnu.org
@ 2011-06-28 12:20 ` amonakov at gcc dot gnu.org
2011-06-28 12:22 ` amonakov at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: amonakov at gcc dot gnu.org @ 2011-06-28 12:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
--- Comment #10 from Alexander Monakov <amonakov at gcc dot gnu.org> 2011-06-28 12:19:23 UTC ---
Author: amonakov
Date: Tue Jun 28 12:19:18 2011
New Revision: 175581
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175581
Log:
Backport from mainline
2011-04-08 Alexander Monakov <amonakov@ispras.ru>
PR target/48273
* cfgloop.h (loop_has_exit_edges): New helper.
* sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
non-clonable.
* sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
that have no exit edges.
* g++.dg/opt/pr48273.C: New.
Added:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/opt/pr48273.C
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/cfgloop.h
branches/gcc-4_6-branch/gcc/sel-sched-ir.c
branches/gcc-4_6-branch/gcc/sel-sched.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/48273] [4.6 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2
2011-03-24 13:47 [Bug target/48273] New: [4.6/4.7 Regression] ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2 zsojka at seznam dot cz
` (11 preceding siblings ...)
2011-06-28 12:20 ` amonakov at gcc dot gnu.org
@ 2011-06-28 12:22 ` amonakov at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: amonakov at gcc dot gnu.org @ 2011-06-28 12:22 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48273
Alexander Monakov <amonakov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #11 from Alexander Monakov <amonakov at gcc dot gnu.org> 2011-06-28 12:21:27 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 14+ messages in thread