[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-11 Thread cvs-commit at gcc dot gnu dot org
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-12-11 17:37 --- Subject: Bug 18641 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2004-12-11 17:37:26 Modified files: gcc: ChangeLog

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-11 Thread dje at gcc dot gnu dot org
--- Additional Comments From dje at gcc dot gnu dot org 2004-12-11 17:55 --- Patch applied. -- What|Removed |Added Status|NEW |RESOLVED

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-07 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-07 15:11 --- *** Bug 18864 has been marked as a duplicate of this bug. *** -- What|Removed |Added

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-07 Thread amodra at bigpond dot net dot au
--- Additional Comments From amodra at bigpond dot net dot au 2004-12-07 23:26 --- FWIW, http://gcc.gnu.org/ml/gcc-patches/2004-12/msg00451.html cures this problem by teaching the rs6000 back-end how to handle multi-register access to non-offsettable memory. --

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-06 Thread dje at watson dot ibm dot com
--- Additional Comments From dje at watson dot ibm dot com 2004-12-06 17:16 --- Subject: Re: [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr The following patch implements the two suggestions. It fixes the ICE on AIX, but continues to

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-06 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-06 17:29 --- T(In reply to comment #22) Subject: Re: [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr The following patch implements the two suggestions. It fixes

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-06 Thread fjahanian at apple dot com
--- Additional Comments From fjahanian at apple dot com 2004-12-06 17:55 --- I applied the patch to fsf-mainline (including darwin.h) and it worked for me. I will do the bootstrap, dejagnu testing and let you know how it went. - Thanks. --

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-06 Thread fjahanian at apple dot com
--- Additional Comments From fjahanian at apple dot com 2004-12-06 23:32 --- David's patch (including darwin.h patch attached here) successufully bootstrapped, dejagnu tested on apple-ppc-darwin. Please apply the patch to mainline. Index: darwin.h

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-06 Thread dje at watson dot ibm dot com
--- Additional Comments From dje at watson dot ibm dot com 2004-12-07 03:10 --- Subject: Re: [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr There are two open questions: 1) Do we want to change the register preferencing? 2) Should

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-05 Thread uweigand at gcc dot gnu dot org
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-12-05 15:45 --- Basically yes, except that it's not only about CONST_DOUBLE, but also CONST_INT. Maybe even: ((CONSTANT_P (X) reg_classes_intersect_p ((CLASS), FLOAT_REGS)) ? NO_REGS : ...) --

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-04 Thread dje at gcc dot gnu dot org
--- Additional Comments From dje at gcc dot gnu dot org 2004-12-05 06:09 --- For option (2), are you suggesting changing PREFERRED_RELOAD_CLASS from ((GET_CODE (X) == CONST_DOUBLE GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) ? NO_REGS : ...) to ((GET_CODE (X) == CONST_DOUBLE

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-02 Thread uweigand at gcc dot gnu dot org
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-12-02 16:14 --- As to 1), this can be achieved by marking the 'f' alternatives in the *movdi_internal32 pattern as '!*f'; this will prevent both regclass and reload from using the alternatives unless there was a

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-12-01 Thread fjahanian at apple dot com
--- Additional Comments From fjahanian at apple dot com 2004-12-01 22:07 --- Regardless of how we fix this specific problem; by reverting Ulrich's patch to find_reloads_address, making the small change he proposed in find_reloads, or something else, there remains the problem each

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-28 Thread laurent at guerby dot net
--- Additional Comments From laurent at guerby dot net 2004-11-28 18:12 --- (In reply to comment #10) I should mention I also see this in a testcase in Ada acats testsuite on ppc-darwin. For the record this is ACATS c761010 and it's ppc only (works on x86 and x86_64), from Andrew's

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-25 Thread rth at gcc dot gnu dot org
--- Additional Comments From rth at gcc dot gnu dot org 2004-11-25 20:31 --- I think the most ideal solution would be to tell L_R_A whether the result is required to be offsettable. It can then fail the transformation if it cannot produce the required offsettable result, and then

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-25 Thread uweigand at gcc dot gnu dot org
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-11-25 21:53 --- This is not very feasible, since whether or not the address is required to be offsettable depends on which alternative is selected; and the current flow of find_reloads does all the address reloading

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-25 Thread uweigand at gcc dot gnu dot org
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-11-25 21:57 --- (Trying again, this time hopefully with proper formatting.) This is not very feasible, since whether or not the address is required to be offsettable depends on which alternative is selected; and the

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-25 Thread rth at gcc dot gnu dot org
--- Additional Comments From rth at gcc dot gnu dot org 2004-11-25 22:44 --- Then I think that we have to assume that the result of L_R_A is not offsettable. Even in the case of rs6000, I believe the definition is only *usually* offsettable, but that this is not a 100% iron-clad

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-24 Thread uweigand at gcc dot gnu dot org
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-11-24 14:50 --- We have here the following situation before reload: (insn 27 46 28 7 (set (reg:DI 118 [ D.1118 ]) (const_int 4294967295 [0x])) 313 {*movdi_internal32} (nil) (nil)) where reg 118 gets

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-24 Thread dje at gcc dot gnu dot org
--- Additional Comments From dje at gcc dot gnu dot org 2004-11-24 18:18 --- Allowing the middle-end to know that the L_R_A address is offsettable looks like a better solution to me. The design is an issue for RTH. One possibility is a target macro to decide if L_R_A addresses

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 01:55 --- This is a regression from 3.4.0. -- What|Removed |Added Known to fail|

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 01:59 --- It worked with: 3.3.2 20030908 3.4 20030525 3.5-tree-ssa 20030620 (merged 20030525) 3.5-tree-ssa 20030928 (merged 20030923) 3.5.0 20040620 3.5.0 20040808 But it failed with: 4.0.0 20040924 --

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 02:04 --- (In reply to comment #4) But it failed with: 4.0.0 20040924 And anything after that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 05:07 --- 3.5.0 20040829 fails also. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 05:55 --- It fails in: 3.5.0 20040824 But passes in: 3.5.0 20040822 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 06:01 --- Reverting: 2004-08-22 Ulrich Weigand [EMAIL PROTECTED] * reload.c (find_reloads_address): Make return value tri-state. Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 06:05 --- *** Bug 17606 has been marked as a duplicate of this bug. *** -- What|Removed |Added

[Bug middle-end/18641] [4.0 Regression] Another ICE caused by reload of a psuedo reg into f0 for a DImode expr

2004-11-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-24 06:08 --- I should mention I also see this in a testcase in Ada acats testsuite on ppc-darwin. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641