* [Bug c/50078] [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
@ 2011-08-14 9:24 ` mikpe at it dot uu.se
2011-08-14 9:39 ` rguenth at gcc dot gnu.org
` (16 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: mikpe at it dot uu.se @ 2011-08-14 9:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Mikael Pettersson <mikpe at it dot uu.se> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mikpe at it dot uu.se
--- Comment #1 from Mikael Pettersson <mikpe at it dot uu.se> 2011-08-14 09:22:01 UTC ---
Not ARM-specific, also happens on i686-linux.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c/50078] [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
2011-08-14 9:24 ` [Bug c/50078] " mikpe at it dot uu.se
@ 2011-08-14 9:39 ` rguenth at gcc dot gnu.org
2011-08-15 9:14 ` [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine " rguenth at gcc dot gnu.org
` (15 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-08-14 9:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2011-08-14
AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-08-14 09:37:26 UTC ---
Mine.
/* If the statement is a scalar store, see if the expression
has the same value number as its rhs. If so, the store is
dead. */
else if (gimple_assign_single_p (stmt)
&& !is_gimple_reg (gimple_assign_lhs (stmt))
&& (TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME
|| is_gimple_min_invariant (gimple_assign_rhs1 (stmt))))
needs a && !gimple_has_volatile_ops (stmt).
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
2011-08-14 9:24 ` [Bug c/50078] " mikpe at it dot uu.se
2011-08-14 9:39 ` rguenth at gcc dot gnu.org
@ 2011-08-15 9:14 ` rguenth at gcc dot gnu.org
2011-08-15 9:16 ` rguenth at gcc dot gnu.org
` (14 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-08-15 9:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|ASSIGNED |NEW
Component|tree-optimization |rtl-optimization
Known to work| |4.5.3
AssignedTo|rguenth at gcc dot gnu.org |unassigned at gcc dot
| |gnu.org
Target Milestone|--- |4.6.2
Summary|[4.6.1+ SVN 2011-08-13] ARM |[4.6/4.7 Regression]
|wrong code: volatile |combine wrong code:
|accesses optimized out |volatile accesses optimized
| |out
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-08-15 09:11:50 UTC ---
Actually I was wrong guessing - the tree level is fine, it is combine that
removes the "noop" move completely:
Trying 6 -> 11:
Failed to match this instruction:
(set (mem/s:SI (plus:DI (ashiftrt:DI (mult:DI (subreg:DI (reg/v:SI 60 [ arg ])
0)
(const_int 4294967296 [0x100000000]))
(const_int 30 [0x1e]))
(symbol_ref:DI ("var") <var_decl 0x7ffff7ee3140 var>)) [2 var S4
A32])
(mem/s/v:SI (plus:DI (ashiftrt:DI (mult:DI (subreg:DI (reg/v:SI 60 [ arg ])
0)
(const_int 4294967296 [0x100000000]))
(const_int 30 [0x1e]))
(symbol_ref:DI ("var") <var_decl 0x7ffff7ee3140 var>)) [2 var S4
A32]))
rejecting combination of insns 6 and 11
original costs 4 + 9 = 13
replacement cost 31
deleting noop move 11
Confirmed on x86_64 as well.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (2 preceding siblings ...)
2011-08-15 9:14 ` [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine " rguenth at gcc dot gnu.org
@ 2011-08-15 9:16 ` rguenth at gcc dot gnu.org
2011-08-17 21:28 ` jsm28 at gcc dot gnu.org
` (13 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-08-15 9:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-08-15 09:13:40 UTC ---
noop_move_p returns true for this - ignoding the side-effects.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (3 preceding siblings ...)
2011-08-15 9:16 ` rguenth at gcc dot gnu.org
@ 2011-08-17 21:28 ` jsm28 at gcc dot gnu.org
2011-09-05 11:49 ` steven at gcc dot gnu.org
` (12 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2011-08-17 21:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Joseph S. Myers <jsm28 at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (4 preceding siblings ...)
2011-08-17 21:28 ` jsm28 at gcc dot gnu.org
@ 2011-09-05 11:49 ` steven at gcc dot gnu.org
2011-09-11 15:18 ` steven at gcc dot gnu.org
` (11 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-05 11:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |steven at gcc dot gnu.org
AssignedTo|unassigned at gcc dot |steven at gcc dot gnu.org
|gnu.org |
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (5 preceding siblings ...)
2011-09-05 11:49 ` steven at gcc dot gnu.org
@ 2011-09-11 15:18 ` steven at gcc dot gnu.org
2011-09-11 15:26 ` steven at gcc dot gnu.org
` (10 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-11 15:18 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #5 from Steven Bosscher <steven at gcc dot gnu.org> 2011-09-11 15:14:19 UTC ---
Actually it is not noop_move_p that's at fault here, but the disgusting hack
for NOOP_MOVE_INSN_CODE. The insn is marked as a NOOP_MOVE somewhere else in
combine.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (6 preceding siblings ...)
2011-09-11 15:18 ` steven at gcc dot gnu.org
@ 2011-09-11 15:26 ` steven at gcc dot gnu.org
2011-09-11 15:44 ` steven at gcc dot gnu.org
` (9 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-11 15:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #6 from Steven Bosscher <steven at gcc dot gnu.org> 2011-09-11 15:22:36 UTC ---
int
set_noop_p (const_rtx set)
{
rtx src = SET_SRC (set);
rtx dst = SET_DEST (set);
if (dst == pc_rtx && src == pc_rtx)
return 1;
if (MEM_P (dst) && MEM_P (src))
return rtx_equal_p (dst, src) && !side_effects_p (dst);
Note there is no check on side_effects_p(src).
Breakpoint 8, set_noop_p (set=0x7ffff70a6d98) at ../../trunk/gcc/rtlanal.c:1094
1094 rtx src = SET_SRC (set);
(gdb) step
1095 rtx dst = SET_DEST (set);
(gdb) next
1097 if (dst == pc_rtx && src == pc_rtx)
(gdb) p debug_rtx(dst)
(mem/s:SI (plus:DI (mult:DI (reg:DI 61 [ arg ])
(const_int 4 [0x4]))
(symbol_ref:DI ("var") <var_decl 0x7ffff7eb0140 var>)) [2 var S4 A32])
$8 = void
(gdb) p debug_rtx(src)
(mem/s/v:SI (plus:DI (mult:DI (reg:DI 61 [ arg ])
(const_int 4 [0x4]))
(symbol_ref:DI ("var") <var_decl 0x7ffff7eb0140 var>)) [2 var S4 A32])
$9 = void
(gdb) step
1100 if (MEM_P (dst) && MEM_P (src))
(gdb) p side_effects_p(src)
$11 = 1
(gdb) step
1101 return rtx_equal_p (dst, src) && !side_effects_p (dst);
(gdb) p rtx_equal_p (dst, src)
$12 = 1
(gdb) p side_effects_p(dst)
$10 = 0
(gdb)
Note that dst is not a volatile MEM for some reason.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (7 preceding siblings ...)
2011-09-11 15:26 ` steven at gcc dot gnu.org
@ 2011-09-11 15:44 ` steven at gcc dot gnu.org
2011-09-11 16:28 ` steven at gcc dot gnu.org
` (8 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-11 15:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|steven at gcc dot gnu.org |matz at gcc dot gnu.org
--- Comment #7 from Steven Bosscher <steven at gcc dot gnu.org> 2011-09-11 15:31:35 UTC ---
Comes from SSA expand => Matz
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (8 preceding siblings ...)
2011-09-11 15:44 ` steven at gcc dot gnu.org
@ 2011-09-11 16:28 ` steven at gcc dot gnu.org
2011-10-26 17:58 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: steven at gcc dot gnu.org @ 2011-09-11 16:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #8 from Steven Bosscher <steven at gcc dot gnu.org> 2011-09-11 15:47:21 UTC ---
(In reply to comment #7)
> Comes from SSA expand => Matz
Comes from SSA expand because it is already wrong in the .expand dump:
;; MEM[(volatile unsigned int *)&var][arg_1(D)] ={v} v_2;
(insn 9 8 10 (set (reg:DI 63)
(sign_extend:DI (reg/v:SI 60 [ argD.1604 ]))) t.c:6 -1
(nil))
(insn 10 9 11 (set (reg/f:DI 64)
(symbol_ref:DI ("var") <var_decl 0x7f4b8054f140 var>)) t.c:6 -1
(nil))
(insn 11 10 0 (set (mem/s:SI (plus:DI (mult:DI (reg:DI 63)
(const_int 4 [0x4]))
(reg/f:DI 64)) [2 varD.1603 S4 A32])
(reg/v:SI 59 [ vD.1607 ])) t.c:6 -1
(nil))
It seems to me that the MEM in insn 11 should be mem/s/v.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (9 preceding siblings ...)
2011-09-11 16:28 ` steven at gcc dot gnu.org
@ 2011-10-26 17:58 ` jakub at gcc dot gnu.org
2011-11-28 9:49 ` [Bug tree-optimization/50078] " jakub at gcc dot gnu.org
` (6 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-10-26 17:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.6.2 |4.6.3
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-10-26 17:13:43 UTC ---
GCC 4.6.2 is being released.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (10 preceding siblings ...)
2011-10-26 17:58 ` jakub at gcc dot gnu.org
@ 2011-11-28 9:49 ` jakub at gcc dot gnu.org
2011-11-28 21:10 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-11-28 9:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|matz at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-11-28 09:12:39 UTC ---
Created attachment 25929
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25929
gcc47-pr50078.patch
IMHO it is a forwprop bug, which changes a MEM_REF in this case into an
ARRAY_REF (with MEM_REF operand), but copies TREE_THIS_VOLATILE from the
original MEM_REF not to the ARRAY_REF, but to the inner MEM_REF.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6/4.7 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (11 preceding siblings ...)
2011-11-28 9:49 ` [Bug tree-optimization/50078] " jakub at gcc dot gnu.org
@ 2011-11-28 21:10 ` jakub at gcc dot gnu.org
2011-11-28 21:11 ` [Bug tree-optimization/50078] [4.6 " jakub at gcc dot gnu.org
` (4 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-11-28 21:10 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-11-28 21:03:16 UTC ---
Author: jakub
Date: Mon Nov 28 21:03:11 2011
New Revision: 181786
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181786
Log:
PR tree-optimization/50078
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
* gcc.dg/pr50078.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/pr50078.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-forwprop.c
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (12 preceding siblings ...)
2011-11-28 21:10 ` jakub at gcc dot gnu.org
@ 2011-11-28 21:11 ` jakub at gcc dot gnu.org
2011-12-09 11:34 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-11-28 21:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.6/4.7 Regression] |[4.6 Regression] combine
|combine wrong code: |wrong code: volatile
|volatile accesses optimized |accesses optimized out
|out |
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-11-28 21:09:57 UTC ---
Fixed on the trunk so far.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (13 preceding siblings ...)
2011-11-28 21:11 ` [Bug tree-optimization/50078] [4.6 " jakub at gcc dot gnu.org
@ 2011-12-09 11:34 ` jakub at gcc dot gnu.org
2011-12-10 16:40 ` mikpe at it dot uu.se
` (2 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-09 11:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-09 11:32:40 UTC ---
Author: jakub
Date: Fri Dec 9 11:32:35 2011
New Revision: 182157
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182157
Log:
Backport from mainline
2011-12-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51466
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
TREE_SIDE_EFFECTS.
* gcc.c-torture/execute/pr51466.c: New test.
2011-11-28 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/50078
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
* gcc.dg/pr50078.c: New test.
Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr51466.c
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/pr50078.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
branches/gcc-4_6-branch/gcc/tree-ssa-forwprop.c
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (14 preceding siblings ...)
2011-12-09 11:34 ` jakub at gcc dot gnu.org
@ 2011-12-10 16:40 ` mikpe at it dot uu.se
2011-12-12 17:38 ` jakub at gcc dot gnu.org
2012-06-11 9:51 ` xguo at gcc dot gnu.org
17 siblings, 0 replies; 19+ messages in thread
From: mikpe at it dot uu.se @ 2011-12-10 16:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #14 from Mikael Pettersson <mikpe at it dot uu.se> 2011-12-10 16:24:38 UTC ---
The original test case now compiles correctly for me with gcc-4.6-20111209 for
both i686-linux and armv5tel-linux-gnueabi targets.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (15 preceding siblings ...)
2011-12-10 16:40 ` mikpe at it dot uu.se
@ 2011-12-12 17:38 ` jakub at gcc dot gnu.org
2012-06-11 9:51 ` xguo at gcc dot gnu.org
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-12 17:38 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-12 17:33:55 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug tree-optimization/50078] [4.6 Regression] combine wrong code: volatile accesses optimized out
2011-08-14 0:57 [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out khc at pm dot waw.pl
` (16 preceding siblings ...)
2011-12-12 17:38 ` jakub at gcc dot gnu.org
@ 2012-06-11 9:51 ` xguo at gcc dot gnu.org
17 siblings, 0 replies; 19+ messages in thread
From: xguo at gcc dot gnu.org @ 2012-06-11 9:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50078
--- Comment #16 from xuepeng guo <xguo at gcc dot gnu.org> 2012-06-11 09:51:12 UTC ---
Author: xguo
Date: Mon Jun 11 09:51:05 2012
New Revision: 188383
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188383
Log:
2012-06-11 Terry Guo <terry.guo@arm.com>
Backport from mainline
2011-12-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51466
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
TREE_SIDE_EFFECTS.
2011-11-28 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/50078
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
Added:
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr51466.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/pr50078.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/tree-ssa-forwprop.c
^ permalink raw reply [flat|nested] 19+ messages in thread