[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #7 from pinskia at gcc dot gnu dot org 2005-11-09 12:01 --- Fixed by: http://gcc.gnu.org/ml/gcc-cvs/2005-11/msg00389.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=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #8 from pinskia at gcc dot gnu dot org 2005-11-09 12:02 --- Note your testcase will fail on every target except for s390: /* { dg-do compile } */ /* { dg-options -O1 -mpacked-stack } */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #9 from krebbel at gcc dot gnu dot org 2005-11-09 12:18 --- Ups sorry. I've fixed that now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #6 from krebbel1 at de dot ibm dot com 2005-11-04 07:56 --- My patch introduced the s390_regs_ever_clobbered function which is used instead of regs_ever_live for determining which registers need saving in function prologue. This function is called during reload when the elimination offsets of eliminable registers are calculated. Whithin the first phase of reload where the reloads only are recorded in struct reloads without modifying the insn itself the back end function only sees the registers assigned by global alloc. Whenever a call clobbered register assigned by global alloc is changed to a call saved register by reload the back end can not see this change in the first phase of reload but afterwards when the changes are applied to the insn. Hence the elimination offset for the arg pointer can change what causes the ICE. Using regs_ever_live is safe even in this first reload phase because that array is updated when reload information is recorded in spill_hard_reg. I've tried a back end hack in s390_regs_ever_clobbered walking through the reload_insn_chain if reload_in_progress is set. For all reload structs I've marked the used reload regs in my regs_ever_clobbered array. But this is probably wrong because reload is not bound to the decisions made in the first phase. It is only assured that the regs in used_spill_regs are sufficient for covering all spill decisions which will be made later on. So the better choice should be to look into the used_spill_regs array which unfortunately is set up after verify_initial_elim_offsets is called (in select_reload_regs). For now I don't see how this can be fixed easily. I will discuss the issue with Ulrich. If we aren't able to come up with a solution I will revert my patch :( -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #2 from janis at gcc dot gnu dot org 2005-11-03 01:28 --- A regression hunt using a cross compiler identified the following patch: http://gcc.gnu.org/viewcvs?view=revrev=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: -m64 -mpacked-stack -mstack-size=8192 -mstack-guard=256 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- 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:45 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #4 from mmitchel at gcc dot gnu dot org 2005-11-03 06:43 --- Downgraded to P5; S390 is not a primary or secondary target. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|uweigand at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #5 from mmitchel at gcc dot gnu dot org 2005-11-03 06:44 --- Correcting accidental un-assignment. -- mmitchel 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|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
--- Comment #1 from rguenth at gcc dot gnu dot org 2005-11-01 21:48 --- Created an attachment (id=10105) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10105action=view) reduced testcase testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24624
[Bug target/24624] [4.1 Regression] internal compiler error: in reload, at reload1.c:1071
-- 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=24624