public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/53501] New: incorrect loop optimization with -O2
@ 2012-05-27 23:11 misof at gcc dot ksp.sk
  2012-05-29 16:15 ` [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow amonakov at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: misof at gcc dot ksp.sk @ 2012-05-27 23:11 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 53501
           Summary: incorrect loop optimization with -O2
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: misof@gcc.ksp.sk


Created attachment 27509
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27509
preprocessed file for which the bug manifests

Sorry if this is a duplicate or if I miscategorized it (my first bug report
here, I did search for this and found nothing similar enough).

This bug appears both in gcc and g++, my best guess is that it has to do with
incorrect optimization of a loop. Bug present at amd64, gcc versions 4.6.3
(Ubuntu) and 4.7.0 (compiled), details follow:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object
--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

$ ./gcc -v # my build of 4.7.0
Using built-in specs.
COLLECT_GCC=./gcc
COLLECT_LTO_WRAPPER=/home/misof/Desktop/newgcc/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/home/misof/Desktop/newgcc/
--disable-multilib
Thread model: posix
gcc version 4.7.0 (GCC) 

Here is the offending source code:
$ cat bug.c
#include <stdio.h>

int e[100], n;

void foo(void) {
    int i, k = 0;
    for (i = 0; i < n; ++i) { e[k] = 10; ++k; e[k] = 10; ++k; }
    for (i = 0; i < k; ++i) printf("%d\n",e[i]);
    printf("k=%d\n",k);
}

int main(void) {
    n = 10;
    foo();
    return 0;
}

Up to my best knowledge this should be valid C code. When compiled without
optimizations or with -O1, everything works as expected:

$ gcc -Wall -Wextra bug.c && ./a.out
10
10
10
10
k=4

However, once -O2 or more is used, the second for-cycle seems to be incorrectly
optimized away:
$ gcc -Wall -Wextra -O2 bug.c && ./a.out
k=4

Interestingly, -fwrapv does make a difference, even though there seem to be no
integer overflows in the code:
$ gcc -Wall -Wextra -O2 -fwrapv bug.c && ./a.out 
10
10
10
10
k=4

Below is the complete stdout of
$ gcc -v -save-temps -Wall -Wextra -O2 bug.c 
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object
--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-O2' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -E -quiet -v -imultilib . -imultiarch
x86_64-linux-gnu bug.c -mtune=generic -march=x86-64 -Wall -Wextra -O2
-fpch-preprocess -fstack-protector -o bug.i
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include"
ignoring duplicate directory "/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/x86_64-linux-gnu
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-O2' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -fpreprocessed bug.i -quiet -dumpbase
bug.c -mtune=generic -march=x86-64 -auxbase bug -O2 -Wall -Wextra -version
-fstack-protector -o bug.s
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
        compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version
3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
        compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version
3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 75e879ed14f91af504f4150eadeaa0e6
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-O2' '-mtune=generic'
'-march=x86-64'
 as --64 -o bug.o bug.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-O2' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.6/collect2 --sysroot=/ --build-id
--no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu
-dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o
-L/usr/lib/gcc/x86_64-linux-gnu/4.6
-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib
-L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. bug.o
-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
--no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.6/crtend.o
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o

Attached is the resulting bug.i file.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
@ 2012-05-29 16:15 ` amonakov at gcc dot gnu.org
  2012-05-30  9:58 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: amonakov at gcc dot gnu.org @ 2012-05-29 16:15 UTC (permalink / raw)
  To: gcc-bugs

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

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-05-29
                 CC|                            |amonakov at gcc dot gnu.org
      Known to work|                            |4.3.2
            Summary|incorrect loop optimization |[4.5/4.6/4.7/4.8
                   |with -O2                    |Regression] scev introduces
                   |                            |signed overflow
     Ever Confirmed|0                           |1

--- Comment #1 from Alexander Monakov <amonakov at gcc dot gnu.org> 2012-05-29 16:00:01 UTC ---
Confirmed, thanks for the report.

This is a regression relative to 4.3 on all active branches (I haven't tested
latest trunk though).

GCC optimizes out the second loop when VRP proves that its upper bound k is
negative.  This is due to scev-cprop performing final value replacement, which
obtains the final value of k after the first loop based on scalar evolution {2,
+, 2} for n-1 latch executions as:

((int) ((unsigned int) n.0_28 + 2147483647) + 1) * 2

(which is a very roundabout way to get n*2, but that's beside the point ;) )
AFAICT forcing the signed type happens in chrec-apply:
          /* "{a, +, b} (x)"  ->  "a + b*x".  */
          x = chrec_convert_rhs (type, x, NULL);
          res = chrec_fold_multiply (TREE_TYPE (x), CHREC_RIGHT (chrec), x);
          res = chrec_fold_plus (type, CHREC_LEFT (chrec), res);

Apropos, I find it quite strange that fold-const folds (n+0xffffffff)*2 to
(n+0x7fffffff)*2, as opposed to n*2+0xfffffffe.

Stopping my investigation here.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
  2012-05-29 16:15 ` [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow amonakov at gcc dot gnu.org
@ 2012-05-30  9:58 ` rguenth at gcc dot gnu.org
  2012-05-30 10:55 ` rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-05-30  9:58 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |
   Target Milestone|---                         |4.5.4

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 09:56:21 UTC ---
Confirmed, mine.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
  2012-05-29 16:15 ` [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow amonakov at gcc dot gnu.org
  2012-05-30  9:58 ` rguenth at gcc dot gnu.org
@ 2012-05-30 10:55 ` rguenth at gcc dot gnu.org
  2012-05-30 12:31 ` rguenth at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-05-30 10:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 10:34:50 UTC ---
It's my very best friend extract_muldiv that transforms
(int)((unsigned int) n.0_26 + 4294967295) * 2
to (int)(((unsigned int) n.0_26 + 2147483647) * 2) 

It is the folding of (int) (((unsigned int) n.0_26 + 2147483647) * 2) + 2
which is wrong and done by fold_plusminus_mult_expr.  Patch:

Index: gcc/fold-const.c
===================================================================
--- gcc/fold-const.c    (revision 188004)
+++ gcc/fold-const.c    (working copy)
@@ -10045,12 +10045,12 @@ fold_binary_loc (location_t loc,
       /* Handle (A1 * C1) + (A2 * C2) with A1, A2 or C1, C2 being the
         same or one.  Make sure type is not saturating.
         fold_plusminus_mult_expr will re-associate.  */
-      if ((TREE_CODE (arg0) == MULT_EXPR
-          || TREE_CODE (arg1) == MULT_EXPR)
+      if ((TREE_CODE (op0) == MULT_EXPR
+          || TREE_CODE (op1) == MULT_EXPR)
          && !TYPE_SATURATING (type)
          && (!FLOAT_TYPE_P (type) || flag_associative_math))
         {
-         tree tem = fold_plusminus_mult_expr (loc, code, type, arg0, arg1);
+         tree tem = fold_plusminus_mult_expr (loc, code, type, op0, op1);
          if (tem)
            return tem;
        }

that will leave the expression unsimplified.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (2 preceding siblings ...)
  2012-05-30 10:55 ` rguenth at gcc dot gnu.org
@ 2012-05-30 12:31 ` rguenth at gcc dot gnu.org
  2012-05-30 12:34 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-05-30 12:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 12:29:31 UTC ---
Author: rguenth
Date: Wed May 30 12:29:26 2012
New Revision: 188009

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188009
Log:
2012-05-30  Richard Guenther  <rguenther@suse.de>

    PR middle-end/53501
    * fold-const.c (fold_binary_loc): Make sure to call
    fold_plusminus_mult_expr with the original sign of operands.

    * gcc.dg/torture/pr53501.c: New testcase.
    * c-c++-common/restrict-2.c: Adjust.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr53501.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/restrict-2.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (4 preceding siblings ...)
  2012-05-30 12:34 ` rguenth at gcc dot gnu.org
@ 2012-05-30 12:34 ` rguenth at gcc dot gnu.org
  2012-06-01 17:01 ` ebotcazou at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-05-30 12:34 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.7.1, 4.8.0
            Summary|[4.5/4.6/4.7/4.8            |[4.5/4.6 Regression] scev
                   |Regression] scev introduces |introduces signed overflow
                   |signed overflow             |
      Known to fail|                            |4.7.0

--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 12:34:22 UTC ---
Fixed on the trunk and the 4.7 branch for now.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (3 preceding siblings ...)
  2012-05-30 12:31 ` rguenth at gcc dot gnu.org
@ 2012-05-30 12:34 ` rguenth at gcc dot gnu.org
  2012-05-30 12:34 ` [Bug tree-optimization/53501] [4.5/4.6 " rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-05-30 12:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 12:32:17 UTC ---
Author: rguenth
Date: Wed May 30 12:32:10 2012
New Revision: 188010

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188010
Log:
2012-05-30  Richard Guenther  <rguenther@suse.de>

    PR middle-end/53501
    * fold-const.c (fold_binary_loc): Make sure to call
    fold_plusminus_mult_expr with the original sign of operands.

    * gcc.dg/torture/pr53501.c: New testcase.
    * c-c++-common/restrict-2.c: Adjust.

Added:
    branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr53501.c
Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/fold-const.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_7-branch/gcc/testsuite/c-c++-common/restrict-2.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (5 preceding siblings ...)
  2012-05-30 12:34 ` [Bug tree-optimization/53501] [4.5/4.6 " rguenth at gcc dot gnu.org
@ 2012-06-01 17:01 ` ebotcazou at gcc dot gnu.org
  2012-06-01 17:03 ` ebotcazou at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-06-01 17:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-06-01 17:01:22 UTC ---
Author: ebotcazou
Date: Fri Jun  1 17:01:17 2012
New Revision: 188118

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188118
Log:
    PR middle-end/53501
    * fold-const.c (fold_binary_loc): Refine previous change.
testsuite/
    * c-c++-common/restrict-2.c: Revert previous change.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/restrict-2.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (6 preceding siblings ...)
  2012-06-01 17:01 ` ebotcazou at gcc dot gnu.org
@ 2012-06-01 17:03 ` ebotcazou at gcc dot gnu.org
  2012-06-20 13:23 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-06-01 17:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-06-01 17:03:27 UTC ---
Author: ebotcazou
Date: Fri Jun  1 17:03:19 2012
New Revision: 188119

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188119
Log:
    PR middle-end/53501
    * fold-const.c (fold_binary_loc): Refine previous change.
testsuite/
    * c-c++-common/restrict-2.c: Revert previous change.

Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/fold-const.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_7-branch/gcc/testsuite/c-c++-common/restrict-2.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (7 preceding siblings ...)
  2012-06-01 17:03 ` ebotcazou at gcc dot gnu.org
@ 2012-06-20 13:23 ` rguenth at gcc dot gnu.org
  2012-07-02 10:57 ` rguenth at gcc dot gnu.org
  2013-04-12 16:25 ` [Bug tree-optimization/53501] [4.6 " jakub at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-20 13:23 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.5/4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (8 preceding siblings ...)
  2012-06-20 13:23 ` rguenth at gcc dot gnu.org
@ 2012-07-02 10:57 ` rguenth at gcc dot gnu.org
  2013-04-12 16:25 ` [Bug tree-optimization/53501] [4.6 " jakub at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-02 10:57 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.5.4                       |4.6.4

--- Comment #9 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-02 10:56:44 UTC ---
The 4.5 branch is being closed, adjusting target milestone.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug tree-optimization/53501] [4.6 Regression] scev introduces signed overflow
  2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
                   ` (9 preceding siblings ...)
  2012-07-02 10:57 ` rguenth at gcc dot gnu.org
@ 2013-04-12 16:25 ` jakub at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-04-12 16:25 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|4.6.4                       |4.7.1

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-12 16:25:39 UTC ---
The 4.6 branch has been closed, fixed in GCC 4.7.1.


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-04-12 16:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-27 23:11 [Bug tree-optimization/53501] New: incorrect loop optimization with -O2 misof at gcc dot ksp.sk
2012-05-29 16:15 ` [Bug tree-optimization/53501] [4.5/4.6/4.7/4.8 Regression] scev introduces signed overflow amonakov at gcc dot gnu.org
2012-05-30  9:58 ` rguenth at gcc dot gnu.org
2012-05-30 10:55 ` rguenth at gcc dot gnu.org
2012-05-30 12:31 ` rguenth at gcc dot gnu.org
2012-05-30 12:34 ` rguenth at gcc dot gnu.org
2012-05-30 12:34 ` [Bug tree-optimization/53501] [4.5/4.6 " rguenth at gcc dot gnu.org
2012-06-01 17:01 ` ebotcazou at gcc dot gnu.org
2012-06-01 17:03 ` ebotcazou at gcc dot gnu.org
2012-06-20 13:23 ` rguenth at gcc dot gnu.org
2012-07-02 10:57 ` rguenth at gcc dot gnu.org
2013-04-12 16:25 ` [Bug tree-optimization/53501] [4.6 " jakub 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).