public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/50078] New: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile accesses optimized out
@ 2011-08-14  0:57 khc at pm dot waw.pl
  2011-08-14  9:24 ` [Bug c/50078] " mikpe at it dot uu.se
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: khc at pm dot waw.pl @ 2011-08-14  0:57 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 50078
           Summary: [4.6.1+ SVN 2011-08-13] ARM wrong code: volatile
                    accesses optimized out
    Classification: Unclassified
           Product: gcc
           Version: 4.6.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: khc@pm.waw.pl


I think armeb-pc-linux-gnueabi-gcc 4.6.2pre 20110813 (cross-compiled on x86-64)
is a bit too optimistic with -O2:

unsigned var[2];

void test(int arg)
{
    unsigned v = *(volatile unsigned *)(&var[arg]);
    *(volatile unsigned *)(&var[arg]) = v;
}

produces:
00000000 <test>:
   0:   e12fff1e        bx      lr


^ 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 ` 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

end of thread, other threads:[~2012-06-11  9:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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
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
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
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).