[Bug middle-end/54961] [4.8 Regression] FAIL: gfortran.dg/pr48757.f -O (internal compiler error) after revision 192440

2012-10-28 Thread steven at gcc dot gnu.org


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

2012-10-28 Thread steven at gcc dot gnu.org


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

2012-10-27 Thread ubizjak at gmail dot com


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

2012-10-27 Thread ubizjak at gmail dot com


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

2012-10-27 Thread steven at gcc dot gnu.org


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

2012-10-19 Thread steven at gcc dot gnu.org


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

2012-10-19 Thread dominiq at lps dot ens.fr


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

2012-10-18 Thread rguenth at gcc dot gnu.org


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.