[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception

2008-10-15 Thread vmakarov at gcc dot gnu dot org


--- 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

2008-10-14 Thread hjl at gcc dot gnu dot org


--- 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

2008-10-11 Thread danglin at gcc dot gnu dot org


--- 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

2008-10-06 Thread vmakarov at gcc dot gnu dot org


--- 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

2008-09-29 Thread hjl at gcc dot gnu dot org


--- 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

2008-09-25 Thread vmakarov at gcc dot gnu dot org


--- 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

2008-09-22 Thread hjl at gcc dot gnu dot org


--- 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

2008-09-21 Thread hjl at gcc dot gnu dot org


--- 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

2008-09-20 Thread hjl dot tools at gmail dot com


--- 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

2008-09-20 Thread dave at hiauly1 dot hia dot nrc dot ca


--- 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

2008-09-19 Thread vmakarov at gcc dot gnu dot org


--- 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

2008-09-18 Thread krebbel at gcc dot gnu dot org


--- 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

2008-09-16 Thread vmakarov at redhat dot com


--- 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

2008-09-16 Thread vmakarov at redhat dot com


--- 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

2008-09-16 Thread rguenth at gcc dot gnu dot org


-- 

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