[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-09 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2005-11-09 12:01 ---
Fixed by:
http://gcc.gnu.org/ml/gcc-cvs/2005-11/msg00388.html


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-04 Thread krebbel1 at de dot ibm dot com


--- Comment #5 from krebbel1 at de dot ibm dot com  2005-11-04 08:02 ---
The problem occurs when a landing pad is optimized away but
the special code in s390_regs_ever_clobbered insists on saving all eh
registers. The special code in that function exists because the eh regs
may be read in a function (inside the landing pad) without beeing set
before. In that case s390_regs_ever_clobbered would not consider them
to be saved. With the attached patch the eh regs for a landing pad are
only saved if regs_ever_live is true for them.

I will not post the patch until I have decided how to fix PR 24624. It
is possible that 24624 can only be fixed by reverting my patch introducing
regs_ever_clobbered. If that patch gets reverted this fix is obsolete of
course.

That fixes the testcase in the PR.

Bootstrapped on s390 and s390x - no testsuite regressions.

OK for mainline?

Bye,

-Andreas-


2005-11-03  Andreas Krebbel  <[EMAIL PROTECTED]>

* config/s390/s390.c (s390_regs_ever_clobbered): Only save LIVE eh regs
for a function containing a landing pad.


Index: gcc/config/s390/s390.c
===
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.257
diff -p -c -r1.257 s390.c
*** gcc/config/s390/s390.c  30 Sep 2005 15:36:15 -  1.257
--- gcc/config/s390/s390.c  3 Nov 2005 12:56:06 -
*** s390_regs_ever_clobbered (int *regs_ever
*** 5874,5880 
   deal with this automatically.  */
if (current_function_calls_eh_return || cfun->machine->has_landing_pad_p)
  for (i = 0; EH_RETURN_DATA_REGNO (i) != INVALID_REGNUM ; i++)
!   regs_ever_clobbered[EH_RETURN_DATA_REGNO (i)] = 1;

/* For nonlocal gotos all call-saved registers have to be saved.
   This flag is also set for the unwinding code in libgcc.
--- 5874,5883 
   deal with this automatically.  */
if (current_function_calls_eh_return || cfun->machine->has_landing_pad_p)
  for (i = 0; EH_RETURN_DATA_REGNO (i) != INVALID_REGNUM ; i++)
!   if (current_function_calls_eh_return 
! || (cfun->machine->has_landing_pad_p 
! && regs_ever_live [EH_RETURN_DATA_REGNO (i)]))
!   regs_ever_clobbered[EH_RETURN_DATA_REGNO (i)] = 1;

/* For nonlocal gotos all call-saved registers have to be saved.
   This flag is also set for the unwinding code in libgcc.


-- 


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-02 Thread mmitchel at gcc dot gnu dot org


--- Comment #4 from mmitchel at gcc dot gnu dot org  2005-11-03 06:43 
---
Downgrading to P5; S390 is not a primary or secondary target.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P5


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-02 Thread uweigand at gcc dot gnu dot org


--- Comment #3 from uweigand at gcc dot gnu dot org  2005-11-03 02:04 
---
Likely backend problem, investigating ...


-- 

uweigand at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |uweigand at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-11-03 02:04:13
   date||


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-02 Thread janis at gcc dot gnu dot org


--- Comment #2 from janis at gcc dot gnu dot org  2005-11-03 00:09 ---
A regression hunt using a cross compiler identified the following patch:

http://gcc.gnu.org/viewcvs?view=rev&rev=101381

2005-06-28  Andreas Krebbel  <[EMAIL PROTECTED]>

* config/s390/s390.c (machine_function): New field has_landing_pad_p.
(s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
 s390_regs_ever_clobbered): New functions.
(s390_return_addr_rtx): Use get_hard_reg_initial_value.
(s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
Use s390_regs_ever_clobbered.
(s390_emit_prologue): Don't use r14 as temp reg if its content is used
for builtin_return_address.
* config/s390/s390.md ("exception_receiver"): New expander.
* config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
added.

Only the following options are needed to reproduce the failure with
the reduced testcase: -O1.


-- 


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-01 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.0


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



[Bug target/24623] [4.1 Regression] internal compiler error: in propagate_one_insn, at flow.c:1702

2005-11-01 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2005-11-01 20:57 ---
Created an attachment (id=10104)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10104&action=view)
reduced testcase

testcase


-- 


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