* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
@ 2011-04-27 9:57 ` rguenth at gcc dot gnu.org
2011-04-27 12:47 ` hjl.tools at gmail dot com
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-04-27 9:57 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.04.27 09:49:15
Target Milestone|--- |4.6.1
Summary|gcc-4.6.0 optimization |[4.6/4.7 Regression]
|regression on |gcc-4.6.0 optimization
|x86_64-unknown-linux-gnu |regression on
| |x86_64-unknown-linux-gnu
Ever Confirmed|0 |1
Known to fail| |4.7.0
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-04-27 09:49:15 UTC ---
Confirmed. -fno-ivopts works around the issue (I didn't yet investigate
whether it causes the issue).
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
2011-04-27 9:57 ` [Bug rtl-optimization/48774] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
@ 2011-04-27 12:47 ` hjl.tools at gmail dot com
2011-04-27 19:08 ` xinliangli at gmail dot com
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: hjl.tools at gmail dot com @ 2011-04-27 12:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |davidxl at gcc dot gnu.org
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-04-27 12:40:54 UTC ---
It is caused by revision 162653:
http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg01007.html
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
2011-04-27 9:57 ` [Bug rtl-optimization/48774] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
2011-04-27 12:47 ` hjl.tools at gmail dot com
@ 2011-04-27 19:08 ` xinliangli at gmail dot com
2011-04-28 10:03 ` rguenth at gcc dot gnu.org
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: xinliangli at gmail dot com @ 2011-04-27 19:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
davidxl <xinliangli at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |xinliangli at gmail dot com
--- Comment #3 from davidxl <xinliangli at gmail dot com> 2011-04-27 19:04:12 UTC ---
(In reply to comment #2)
> It is caused by revision 162653:
>
> http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg01007.html
Looked at IVOPT transformation -- seems ok.
The program passes with the following options:
-O2 -funroll-loops regression.c -fno-tree-vrp -fno-tree-dominator-opts
-fno-gcse
Removing any of the -fno-xxx options, the program fail. -fno-gcse makes
difference indicates tree level transformations are fine -- possibly bad
aliasing?
David
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (2 preceding siblings ...)
2011-04-27 19:08 ` xinliangli at gmail dot com
@ 2011-04-28 10:03 ` rguenth at gcc dot gnu.org
2011-04-29 18:58 ` jakub at gcc dot gnu.org
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-04-28 10:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-04-28 10:02:22 UTC ---
The code is fine with -fno-strict-aliasing, so I doubt that. Just -fno-gcse
also doesn't fix it (nor does -fno-schedule-insns2, the usual RTL alias
related miscompiler).
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (3 preceding siblings ...)
2011-04-28 10:03 ` rguenth at gcc dot gnu.org
@ 2011-04-29 18:58 ` jakub at gcc dot gnu.org
2011-04-30 16:15 ` jakub at gcc dot gnu.org
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-04-29 18:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-29 18:55:48 UTC ---
Slightly reduced testcase, fails with -O2 -funroll-loops on x86_64-linux,
succeeds with -O2:
unsigned long int s[12][2]
= { { 12, 2114 }, { 12, 37 }, { 12, 1034 }, { 12, 532 },
{ 12, 296 }, { 12, 82 }, { 12, 161 }, { 12, 2368 },
{ 12, 656 }, { 12, 1288 }, { 12, 2564 }, { 12, 1153 } };
struct { int n; unsigned long *edges[12]; } g
= { 12, { &s[0][1], &s[1][1], &s[2][1], &s[3][1],
&s[4][1], &s[5][1], &s[6][1], &s[7][1],
&s[8][1], &s[9][1], &s[10][1], &s[11][1] } };
#define SET_BIT_MASK(x) ((unsigned long)1<<(x))
#define SET_ELEMENT_CONTAINS(e,v) ((e)&SET_BIT_MASK(v))
#define SET_CONTAINS_FAST(s,a) (SET_ELEMENT_CONTAINS((s)[0], (a)))
#define GRAPH_IS_EDGE(g,i,j) \
(((j)<(((g)->edges[(0)]))[-1])?SET_CONTAINS_FAST((g)->edges[(i)],j):0)
int
main ()
{
int i, j, v, a[12], c[12], e = 0;
for (i = 0; i < 12; i++)
c[i] = 0;
for (i = 0; i < g.n; i++)
for (j = 0; j < g.n; j++)
{
if (i == j && GRAPH_IS_EDGE (&g, i, j))
__builtin_exit (0);
if (GRAPH_IS_EDGE (&g, i, j))
c[i]++;
}
for (i = 0; i < 12; i++)
if (c[i] != 3)
__builtin_abort ();
for (v = 0; v < 2; v++)
{
__builtin_memset (a, 0, 12 * sizeof (int));
for (i = 0; i < 12; i++)
if (a[i])
e = i;
v++;
}
return e;
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (4 preceding siblings ...)
2011-04-29 18:58 ` jakub at gcc dot gnu.org
@ 2011-04-30 16:15 ` jakub at gcc dot gnu.org
2011-05-02 8:53 ` jakub at gcc dot gnu.org
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-04-30 16:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-30 16:14:52 UTC ---
Tiny bit more simplified, without the GRAPH_IS_EDGE and related macros:
unsigned long int s[12][2]
= { { 12, 2114 }, { 12, 37 }, { 12, 1034 }, { 12, 532 },
{ 12, 296 }, { 12, 82 }, { 12, 161 }, { 12, 2368 },
{ 12, 656 }, { 12, 1288 }, { 12, 2564 }, { 12, 1153 } };
struct { int n; unsigned long *edges[12]; } g
= { 12, { &s[0][1], &s[1][1], &s[2][1], &s[3][1],
&s[4][1], &s[5][1], &s[6][1], &s[7][1],
&s[8][1], &s[9][1], &s[10][1], &s[11][1] } };
int
main ()
{
int i, j, v, a[12], c[12], e = 0;
for (i = 0; i < 12; i++)
c[i] = 0;
for (i = 0; i < g.n; i++)
for (j = 0; j < g.n; j++)
{
if (i == j && j < g.edges[0][-1] && (g.edges[i][0] & (1UL << j)))
__builtin_exit (0);
if (j < g.edges[0][-1] && (g.edges[i][0] & (1UL << j)))
c[i]++;
}
for (i = 0; i < 12; i++)
if (c[i] != 3)
__builtin_abort ();
for (v = 0; v < 2; v++)
{
__builtin_memset (a, 0, 12 * sizeof (int));
for (i = 0; i < 12; i++)
if (a[i])
e = i;
}
return e;
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (5 preceding siblings ...)
2011-04-30 16:15 ` jakub at gcc dot gnu.org
@ 2011-05-02 8:53 ` jakub at gcc dot gnu.org
2011-05-02 9:13 ` jakub at gcc dot gnu.org
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-02 8:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-02 08:52:44 UTC ---
unsigned long int s[12][2]
= { { 12, ~1 }, { 12, ~2 }, { 12, ~4 }, { 12, ~8 },
{ 12, ~16 }, { 12, ~32 }, { 12, ~64 }, { 12, ~128 },
{ 12, ~256 }, { 12, ~512 }, { 12, ~1024 }, { 12, ~2048 } };
struct { int n; unsigned long *e[12]; } g
= { 12, { &s[0][1], &s[1][1], &s[2][1], &s[3][1],
&s[4][1], &s[5][1], &s[6][1], &s[7][1],
&s[8][1], &s[9][1], &s[10][1], &s[11][1] } };
int
main ()
{
int i, j, c[12];
for (i = 0; i < 12; i++)
c[i] = 0;
for (i = 0; i < g.n; i++)
for (j = 0; j < g.n; j++)
{
if (i == j && j < g.e[0][-1] && (g.e[i][0] & (1UL << j)))
__builtin_exit (0);
if (j < g.e[0][-1] && (g.e[i][0] & (1UL << j)))
c[i]++;
}
for (i = 0; i < 12; i++)
if (c[i] != 11)
__builtin_abort ();
return 0;
}
Slightly more reduced. This one shows clearly on which iteration of the inner
unrolled loop there is some problem, as c during abort is { 10, 11, 10 ... },
which means & 1 testing is performed, & 2 is wrong and & 4 and higher works
too.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (6 preceding siblings ...)
2011-05-02 8:53 ` jakub at gcc dot gnu.org
@ 2011-05-02 9:13 ` jakub at gcc dot gnu.org
2011-05-02 14:16 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-02 9:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-02 09:10:23 UTC ---
/* PR rtl-optimization/48774 */
/* { dg-do run } */
/* { dg-options "-O2 -funroll-loops" } */
extern void abort (void);
unsigned long int s[24]
= { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
struct { int n; unsigned long *e[12]; } g
= { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14],
&s[16], &s[18], &s[20], &s[22] } };
int c[12];
__attribute__((noinline, noclone)) void
foo (void)
{
int i, j;
for (i = 0; i < g.n; i++)
for (j = 0; j < g.n; j++)
{
if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
abort ();
if (j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
c[i]++;
}
}
int
main ()
{
int i;
asm volatile ("" : "+m" (s), "+m" (g), "+m" (c));
foo ();
for (i = 0; i < 12; i++)
if (c[i] != 11)
abort ();
return 0;
}
Apparently the [0][-1] didn't matter, and this testcase also decreases the size
of the miscompiled routine.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (7 preceding siblings ...)
2011-05-02 9:13 ` jakub at gcc dot gnu.org
@ 2011-05-02 14:16 ` jakub at gcc dot gnu.org
2011-05-02 14:16 ` jakub at gcc dot gnu.org
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-02 14:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-02 13:58:28 UTC ---
This looks like a target bug to me
in *.postreload we have:
(insn 615 177 616 32 (set (reg:CCC 17 flags)
(compare:CCC (zero_extract:DI (reg:DI 5 di [orig:129 prephitmp.8 ]
[129])
(const_int 1 [0x1])
(const_int 1 [0x1]))
(const_int 0 [0]))) pr48774-6.c:23 377 {*testqi_ext_3_rex64}
(nil))
(jump_insn 616 615 184 32 (set (pc)
(if_then_else (ne (reg:CCC 17 flags)
(const_int 0 [0]))
(label_ref 214)
(pc))) pr48774-6.c:23 589 {*jcc_1}
(expr_list:REG_BR_PROB (const_int 5000 [0x1388])
(nil))
which comes from jcc_bt* splitter, where the second const1_rtx still was a
register at the time of the split, but IRA materialized it into a constant.
The CCC mode is fine for bt insn. Unfortunately split2 pass splits this into:
(insn 626 177 616 32 (set (reg:CCC 17 flags)
(compare:CCC (and:QI (reg:QI 5 di [orig:129 prephitmp.8 ] [129])
(const_int 2 [0x2]))
(const_int 0 [0]))) pr48774-6.c:23 369 {*testqi_1_maybe_si}
(nil))
(jump_insn 616 626 184 32 (set (pc)
(if_then_else (ne (reg:CCC 17 flags)
(const_int 0 [0]))
(label_ref 214)
(pc))) pr48774-6.c:23 589 {*jcc_1}
(expr_list:REG_BR_PROB (const_int 5000 [0x1388])
(nil))
-> 214)
which is already incorrect, if we want to replace bt-ish test, we'd need to
update the mode to CCmode or similar and update the user(s).
The generated assembly then has:
andl $2, %edi
jnc .L21
whereas it should have been either
btl $1, %edi
jnc .L21
or
andl $2, %edi
je .L21
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug rtl-optimization/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (8 preceding siblings ...)
2011-05-02 14:16 ` jakub at gcc dot gnu.org
@ 2011-05-02 14:16 ` jakub at gcc dot gnu.org
2011-05-02 17:32 ` [Bug target/48774] " jakub at gcc dot gnu.org
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-02 14:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48774
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org
|gnu.org |
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (9 preceding siblings ...)
2011-05-02 14:16 ` jakub at gcc dot gnu.org
@ 2011-05-02 17:32 ` jakub at gcc dot gnu.org
2011-05-03 13:08 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-02 17:32 UTC (permalink / raw)
To: gcc-bugs
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 *bt<mode> 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.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (10 preceding siblings ...)
2011-05-02 17:32 ` [Bug target/48774] " jakub at gcc dot gnu.org
@ 2011-05-03 13:08 ` jakub at gcc dot gnu.org
2011-05-03 13:18 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-03 13:08 UTC (permalink / raw)
To: gcc-bugs
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=gcc&view=rev&rev=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
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (11 preceding siblings ...)
2011-05-03 13:08 ` jakub at gcc dot gnu.org
@ 2011-05-03 13:18 ` jakub at gcc dot gnu.org
2011-05-03 13:26 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-03 13:18 UTC (permalink / raw)
To: gcc-bugs
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.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (12 preceding siblings ...)
2011-05-03 13:18 ` jakub at gcc dot gnu.org
@ 2011-05-03 13:26 ` jakub at gcc dot gnu.org
2011-05-03 16:46 ` jakub at gcc dot gnu.org
2011-05-04 9:24 ` jakub at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-03 13:26 UTC (permalink / raw)
To: gcc-bugs
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=gcc&view=rev&rev=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
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (13 preceding siblings ...)
2011-05-03 13:26 ` jakub at gcc dot gnu.org
@ 2011-05-03 16:46 ` jakub at gcc dot gnu.org
2011-05-04 9:24 ` jakub at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-03 16:46 UTC (permalink / raw)
To: gcc-bugs
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=gcc&view=rev&rev=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
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/48774] [4.6/4.7 Regression] gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu
2011-04-26 15:55 [Bug rtl-optimization/48774] New: gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu mariah.lenox at gmail dot com
` (14 preceding siblings ...)
2011-05-03 16:46 ` jakub at gcc dot gnu.org
@ 2011-05-04 9:24 ` jakub at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-05-04 9:24 UTC (permalink / raw)
To: gcc-bugs
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=gcc&view=rev&rev=173359
Log:
Backported from mainline
2011-05-03 Uros Bizjak <ubizjak@gmail.com>
Jakub Jelinek <jakub@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
^ permalink raw reply [flat|nested] 17+ messages in thread