[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-09-09 Thread bonzini at gcc dot gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-09-09 12:43 ---
Subject: Bug 26778

Author: bonzini
Date: Sat Sep  9 12:43:32 2006
New Revision: 116798

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116798
Log:
gcc:
2006-09-09  Paolo Bonzini  <[EMAIL PROTECTED]>
Dale Johannesen  <[EMAIL PROTECTED]>

PR target/26778
* regclass.c (struct reg_pref): Update documentation.
(regclass): Set prefclass to NO_REGS if memory is the best option.
(record_reg_classes): Cope with a prefclass set to NO_REGS.

gcc/testsuite:
2006-09-09  Eric Christopher  <[EMAIL PROTECTED]>

PR target/26778
* gcc.target/i386/pr26778.c: New testcase.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr26778.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/regclass.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-08-18 Thread bonzini at gnu dot org


--- Comment #9 from bonzini at gnu dot org  2006-08-18 12:07 ---
patch bootstrapped & tested on ia64, ppc, x86_64, s390, everywhere including
ada but not java, w/ no regressions


-- 


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-08-11 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2006-08-11 13:18 ---
taking this.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-03-21 13:13:25 |2006-08-11 13:18:17
   date||


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-08-07 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-08-07 08:51 ---
Created an attachment (id=12034)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12034&action=view)
patch that would fix it, but breaks SH


-- 


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-08-07 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-08-07 08:12 ---
Also, note that the problem is not only that SSE is used to store th.  Even if
we enable SSE2, we do not use the SSE register to do the thdb.l++ and instead
do this:

movsd   %xmm2, -8(%ebp)
movl-8(%ebp), %eax
movl-4(%ebp), %edx
addl$1, %eax
adcl$0, %edx
movl%eax, -8(%ebp)
movl%edx, -4(%ebp)
movsd   -8(%ebp), %xmm0

We'd need SRA for unions (using VIEW_CONVERT_EXPR) in order to do that.


-- 


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-08-07 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-08-07 08:08 ---
Dale Johannesen's patch for PR19653 would have fixed this, but it broke SH (it
caused PR27117).


-- 


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-06-04 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-06-04 Thread jsm28 at gcc dot gnu dot org


-- 

jsm28 at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.2


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



[Bug target/26778] [4.0/4.1/4.2 regression] GCC4 moves the result of a conditional block through inadequate registers

2006-04-10 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2006-04-10 19:57 ---
GCC 3.4 did better, said the reporter in comment #0.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|GCC4 moves the result of a  |[4.0/4.1/4.2 regression]
   |conditional block through   |GCC4 moves the result of a
   |inadequate registers|conditional block through
   ||inadequate registers


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