[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-04 
09:21:15 UTC ---
Author: jakub
Date: Wed May  4 09:21:09 2011
New Revision: 173359

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173359
Log:
Backported from mainline
2011-05-03  Uros Bizjak  ubiz...@gmail.com
Jakub Jelinek  ja...@redhat.com

PR target/48774
* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
only succeed if req_mode is the same as set_mode.

* gcc.dg/pr48774.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr48774.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/i386/i386.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-03 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-03 
13:01:17 UTC ---
Author: jakub
Date: Tue May  3 13:01:12 2011
New Revision: 173301

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173301
Log:
PR target/48774
* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
only succeed if req_mode is the same as set_mode.

* gcc.dg/pr48774.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr48774.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog


[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-03 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-03 
13:07:20 UTC ---
Fixed.


[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-03 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-03 
13:06:14 UTC ---
Author: jakub
Date: Tue May  3 13:06:06 2011
New Revision: 173302

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173302
Log:
PR target/48774
* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
only succeed if req_mode is the same as set_mode.

* gcc.dg/pr48774.c: New test.

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/pr48774.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/i386/i386.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-03 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-03 
16:38:34 UTC ---
Author: jakub
Date: Tue May  3 16:38:25 2011
New Revision: 173329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173329
Log:
PR target/48774
* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
only succeed if req_mode is the same as set_mode.

* gcc.dg/pr48774.c: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.dg/pr48774.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/i386/i386.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu

2011-05-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-02 
17:31:17 UTC ---
Created attachment 24169
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24169
gcc47-pr48774.patch

Untested fix.  The additional condition could be changed to just CCCmode check,
or on the other side have:
 || !(TARGET_USE_BT || optimize_function_for_size_p (cfun))
in as well.  Or *btmode would need to be represented in RTL in some different
way, where the setting of Carry is natural to the operation and couldn't be
confused with testqi.