[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #19 from vmakarov at gcc dot gnu dot org 2008-10-16 00:53 --- Subject: Bug 37535 Author: vmakarov Date: Thu Oct 16 00:51:34 2008 New Revision: 141160 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141160 Log: 2008-10-15 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_early_clobbers): Remove. (make_pseudo_conflict, check_and_make_def_use_conflicts, check_and_make_def_conflicts, make_early_clobber_and_input_conflicts, mark_hard_reg_early_clobbers): New functions. (process_bb_node_lives): Call make_early_clobber_and_input_conflicts and mark_hard_reg_early_clobbers. Make hard register inputs live again. * doc/rtl.texi (clobber): Change descriotion of RA behaviour for early clobbers of pseudo-registers. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/rtl.texi trunk/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #18 from hjl at gcc dot gnu dot org 2008-10-14 22:26 --- Subject: Bug 37535 Author: hjl Date: Tue Oct 14 22:25:09 2008 New Revision: 141121 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141121 Log: 2008-10-14 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_early_clobbers): Remove. (make_pseudo_conflict, check_and_make_def_use_conflicts, check_and_make_def_conflicts, make_early_clobber_and_input_conflicts, mark_hard_reg_early_clobbers): New functions. (process_bb_node_lives): Call make_early_clobber_and_input_conflicts and mark_hard_reg_early_clobbers. Make hard register inputs live again. * doc/rtl.texi (clobber): Change descriotion of RA behaviour for early clobbers of pseudo-registers. Modified: branches/ira-merge/gcc/ChangeLog.ira branches/ira-merge/gcc/doc/rtl.texi branches/ira-merge/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #17 from danglin at gcc dot gnu dot org 2008-10-11 15:11 --- Fixed. -- danglin at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #16 from vmakarov at gcc dot gnu dot org 2008-10-06 15:35 --- Subject: Bug 37535 Author: vmakarov Date: Mon Oct 6 15:34:26 2008 New Revision: 140906 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140906 Log: 2008-10-06 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. * doc/rtx.texi (clobber): Change how RA deals with clobbers. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/rtl.texi trunk/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #15 from hjl at gcc dot gnu dot org 2008-09-30 00:38 --- Subject: Bug 37535 Author: hjl Date: Tue Sep 30 00:36:48 2008 New Revision: 140775 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140775 Log: 2008-09-29 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. Process inputs again if necessary. * doc/rtl.texi (clobber): Change how RA deals with clobbers. Modified: branches/ira-merge/gcc/ChangeLog.ira branches/ira-merge/gcc/doc/rtl.texi branches/ira-merge/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #14 from vmakarov at gcc dot gnu dot org 2008-09-26 00:44 --- Subject: Bug 37535 Author: vmakarov Date: Fri Sep 26 00:43:11 2008 New Revision: 140679 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140679 Log: 2008-09-25 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. * doc/rtx.texi (clobber): Change how RA deals with clobbers. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/rtl.texi trunk/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #13 from hjl at gcc dot gnu dot org 2008-09-22 22:46 --- Subject: Bug 37535 Author: hjl Date: Mon Sep 22 22:44:53 2008 New Revision: 140568 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140568 Log: 2008-09-22 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. Modified: branches/ira-merge/gcc/ChangeLog.ira branches/ira-merge/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #12 from hjl at gcc dot gnu dot org 2008-09-21 19:59 --- Subject: Bug 37535 Author: hjl Date: Sun Sep 21 19:58:24 2008 New Revision: 140533 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140533 Log: 2008-09-21 Richard Sandiford <[EMAIL PROTECTED]> PR rtl-optimization/37535 * ira-lives.c (mark_ref_live): Return bool. (process_bb_node_lives): Only mark the registers dead which have been marked live before without being already live at that point. Modified: branches/ira-merge/gcc/ChangeLog.ira branches/ira-merge/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #11 from hjl dot tools at gmail dot com 2008-09-20 18:44 --- (In reply to comment #10) > Subject: Re: [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: > Floating point exception > > > URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504 > > Log: > > 2008-09-19 Vladimir Makarov <[EMAIL PROTECTED]> > > > > PR middle-end/37535 > > > > * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. > > (mark_ref_live, mark_ref_dead): Use them. > > (def_conflicts_with_inputs_p): Remove. > > (mark_early_clobbers): New function. > > (process_bb_node_lives): Call preprocess_constraints and > > mark_early_clobbers. > > > > I have tested this change on the trunk with hppa-unknown-linux-gnu > and it fixes the problem. > This patch caused PR 37598. -- hjl dot tools at gmail dot com changed: What|Removed |Added OtherBugsDependingO||37598 nThis|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca 2008-09-20 17:04 --- Subject: Re: [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception > URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504 > Log: > 2008-09-19 Vladimir Makarov <[EMAIL PROTECTED]> > > PR middle-end/37535 > > * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. > (mark_ref_live, mark_ref_dead): Use them. > (def_conflicts_with_inputs_p): Remove. > (mark_early_clobbers): New function. > (process_bb_node_lives): Call preprocess_constraints and > mark_early_clobbers. > > > Modified: > branches/ira-merge/gcc/ChangeLog > branches/ira-merge/gcc/ira-lives.c I have tested this change on the trunk with hppa-unknown-linux-gnu and it fixes the problem. Thanks, Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #9 from vmakarov at gcc dot gnu dot org 2008-09-19 23:24 --- Subject: Bug 37535 Author: vmakarov Date: Fri Sep 19 23:23:34 2008 New Revision: 140504 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504 Log: 2008-09-19 Vladimir Makarov <[EMAIL PROTECTED]> PR middle-end/37535 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. (mark_ref_live, mark_ref_dead): Use them. (def_conflicts_with_inputs_p): Remove. (mark_early_clobbers): New function. (process_bb_node_lives): Call preprocess_constraints and mark_early_clobbers. Modified: branches/ira-merge/gcc/ChangeLog branches/ira-merge/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #8 from krebbel at gcc dot gnu dot org 2008-09-18 12:02 --- This also seem to break S/390 bootstrap currently. Please see: http://gcc.gnu.org/ml/gcc/2008-09/msg00304.html -- krebbel at gcc dot gnu dot org changed: What|Removed |Added CC||krebbel at gcc dot gnu dot ||org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-09-18 12:02:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #7 from vmakarov at redhat dot com 2008-09-17 01:10 --- The patch I mentioned contains the following code at the end of ira-lives.c::process_bb_node_lives for all uses: mark uses as live for all clobbers: mark them as live for all clobbers: mark them dead The r25 are in uses and clobbers, so this code makes r25 dead on traversing to bb start which is quite wrong and results in that p171 does not conflict with r25. Besides the part of code for building conflicts is wrong, it is also too conservative. The input should conflict only with *early* clobbers. Processing only early clobbers on the two last line solves the problem (regular clobbers are still processed in ira-lives.c::process_bb_node_lives with defs). I'll sent the patch soon. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
--- Comment #6 from vmakarov at redhat dot com 2008-09-16 16:47 --- John, thanks for detail analysis. IRA uses 25 for p171 because there is no recorded conflicts for p171 and hard register 25. The problem was introduced by recent patch 2008-09-04 Richard Sandiford <[EMAIL PROTECTED]> PR middle-end/37243 * ira-build.c (form_loop_tree): Reverse BB walk. (create_bb_allocnos): Likewise. * ira-lives.c (make_regno_born_and_dead, regs_set): Delete. (mark_reg_store): Rename to... (mark_ref_live): ...this and take a df_ref argument instead of note_stores arguments. Assert that we have a register. (mark_reg_clobber): Delete. (def_conflicts_with_inputs_p): New function. (mark_reg_conflicts): Delete. (mark_reg_death): Rename to... (mark_ref_dead): ...this and take a df_ref argument instead of a register. Assert that we have a register. (process_bb_node_lives): Hoist frequency calculation out of instruction walk. Convert from a forwards scan to a backwards scan. Use DF_REF_USES and DF_REF_DEFS instead of register notes and note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling. (create_allocno_live_ranges): Don't create regs_set. I'll work on a fix. Unfortunately using DF for building conflicts became more complicated that it was before based on REG notes. So it will take some time. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||vmakarov at gcc dot gnu dot ||org Summary|gcc/libgcc2.c:404: internal |[4.4 Regression] |compiler error: Floating|gcc/libgcc2.c:404: internal |point exception |compiler error: Floating ||point exception Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535