[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #7 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:44:50 UTC --- The problems of comment #4 and comment #5 are PR39607, a problem that should be solved in reg-stack. The problem of comment #0 is a problem in IRA. There is code to prevent stack registers from living across EDGE_ABNORMAL edges but clearly this code fails in the pr48757.f test case. I suspect there is a bug in the splitting or merging of allocno ranges where the ALLOCNO_NO_STACK_REG_P and ALLOCNO_TOTAL_NO_STACK_REG_P maybe are not properly copied/merged.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|NEW |SUSPENDED --- Comment #8 from Steven Bosscher steven at gcc dot gnu.org 2012-10-28 11:54:16 UTC --- Depends on IRA using DF_LIVE. To be visited later.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #4 from Uros Bizjak ubizjak at gmail dot com 2012-10-27 07:06:25 UTC --- Steven, has there been any new progress on this PR? In addition to the failure in this PR, I also get (-O2 -m32) that may be related to the failure in Comment #0: FAIL: gfortran.dg/pr40587.f -O (internal compiler error) FAIL: gfortran.dg/pr40587.f -O (test for excess errors) with following backtrace: /home/uros/gcc-svn/trunk/gcc/testsuite/gfortran.dg/pr40587.f:17:0: internal compiler error: in emit_swap_insn, at reg-stack.c:814 0x8c95c5 emit_swap_insn ../../gcc-svn/trunk/gcc/reg-stack.c:814 0x8ca615 move_for_stack_reg ../../gcc-svn/trunk/gcc/reg-stack.c:1028 0x8cadde subst_stack_regs_pat ../../gcc-svn/trunk/gcc/reg-stack.c:1471 0x8cc125 subst_stack_regs ../../gcc-svn/trunk/gcc/reg-stack.c:2357 0x8cc315 convert_regs_1 ../../gcc-svn/trunk/gcc/reg-stack.c:2986 0x8cc315 convert_regs_2 ../../gcc-svn/trunk/gcc/reg-stack.c:3121 0x8ccf27 convert_regs ../../gcc-svn/trunk/gcc/reg-stack.c:3156 0x8ccf27 reg_to_stack ../../gcc-svn/trunk/gcc/reg-stack.c:3286 0x8ccf27 rest_of_handle_stack_regs
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #5 from Uros Bizjak ubizjak at gmail dot com 2012-10-27 07:11:00 UTC --- (In reply to comment #4) Steven, has there been any new progress on this PR? In addition to the failure in this PR, I also get (-O2 -m32) that may be related to the failure in Comment #0: FAIL: gfortran.dg/pr40587.f -O (internal compiler error) FAIL: gfortran.dg/pr40587.f -O (test for excess errors) And: FAIL: g++.dg/opt/pr39607.C -std=gnu++98 (internal compiler error) FAIL: g++.dg/opt/pr39607.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/pr39607.C -std=gnu++11 (internal compiler error) FAIL: g++.dg/opt/pr39607.C -std=gnu++11 (test for excess errors) /home/uros/gcc-svn/trunk/gcc/testsuite/g++.dg/opt/pr39607.C: In member function 'AbcIval1d AbcCone::GetLinearParamIval(AbcSurfType*) const': /home/uros/gcc-svn/trunk/gcc/testsuite/g++.dg/opt/pr39607.C:65:1: internal compiler error: in emit_swap_insn, at reg-stack.c:814 0x9ffb45 emit_swap_insn ../../gcc-svn/trunk/gcc/reg-stack.c:814 0xa00b95 move_for_stack_reg ../../gcc-svn/trunk/gcc/reg-stack.c:1028 0xa0135e subst_stack_regs_pat ../../gcc-svn/trunk/gcc/reg-stack.c:1471 0xa026a5 subst_stack_regs ../../gcc-svn/trunk/gcc/reg-stack.c:2357 0xa02895 convert_regs_1 ../../gcc-svn/trunk/gcc/reg-stack.c:2986 0xa02895 convert_regs_2 ../../gcc-svn/trunk/gcc/reg-stack.c:3121 0xa034a7 convert_regs ../../gcc-svn/trunk/gcc/reg-stack.c:3156 0xa034a7 reg_to_stack ../../gcc-svn/trunk/gcc/reg-stack.c:3286 0xa034a7 rest_of_handle_stack_regs ../../gcc-svn/trunk/gcc/reg-stack.c:3328
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #6 from Steven Bosscher steven at gcc dot gnu.org 2012-10-27 13:03:07 UTC --- (In reply to comment #4) Steven, has there been any new progress on this PR? Workin' on it this weekend.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #2 from Steven Bosscher steven at gcc dot gnu.org 2012-10-19 21:57:54 UTC --- Something I'm going to test: Index: ira-lives.c === --- ira-lives.c (revision 192571) +++ ira-lives.c (working copy) @@ -1373,6 +1373,19 @@ process_bb_node_lives (ira_loop_tree_nod if (bb_has_abnormal_pred (bb)) { #ifdef STACK_REGS + /* Mark all stack mode registers and stack hard registers live +so that they will conflict and allocation across the abnormal +edge is impossible. +Stack registers must be treated as live in the traditional, +DF_LR-like sense, because compensation code may have to be +introduced on edges. The register allocator treats the stack +registers like all other, non-stack registers. It doesn't +know that stack shuffling may be required and may allocate +a partially available stack reg in ways that result in the +need for compensation code on abnormal edges. See PR54961. */ + EXECUTE_IF_SET_IN_BITMAP (DF_LR_IN (bb), FIRST_PSEUDO_REGISTER, j, bi) + if (IS_STACK_MODE (GET_MODE (regno_reg_rtx[j]))) + mark_pseudo_regno_live (j); EXECUTE_IF_SET_IN_SPARSESET (objects_live, px) { ira_allocno_t a = OBJECT_ALLOCNO (ira_object_id_map[px]);
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 --- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-10-19 23:18:39 UTC --- Something I'm going to test: It does not fix the ICE, at least on x86_64-apple-darwin10.
[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54961 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target|*86*-*-*|i?86-*-* Status|UNCONFIRMED |NEW Last reconfirmed||2012-10-18 Target Milestone|--- |4.8.0 Ever Confirmed|0 |1 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-10-18 09:56:21 UTC --- Confirmed.