public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
@ 2007-06-28 6:07 jv244 at cam dot ac dot uk
2007-06-28 8:13 ` [Bug tree-optimization/32533] [4.2 regression] " ubizjak at gmail dot com
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: jv244 at cam dot ac dot uk @ 2007-06-28 6:07 UTC (permalink / raw)
To: gcc-bugs
derived from CP2K and discussed in PR 29975, the following is miscompiled with
the current 4.2 branch :
vondele@pcihopt3:/scratch/vondele/clean/cp2k/src> cat test.f90
SUBROUTINE T(nsubcell,sab_max,subcells)
INTEGER, PARAMETER :: dp=KIND(0.0D0)
REAL(dp) :: sab_max(3), subcells,nsubcell(3)
nsubcell(:) = MIN(MAX(1,NINT(0.5_dp*subcells/sab_max(:))),20)
write(6,*) nsubcell
END SUBROUTINE
INTEGER, PARAMETER :: dp=KIND(0.0D0)
REAL(dp) :: sab_max(3), subcells,nsubcell(3)
subcells=2.00000000000000
sab_max=0.590060749244805_dp
write(6,*) NINT(0.5_dp*subcells/sab_max(1))
CALL T(nsubcell,sab_max,subcells)
END
vondele@pcihopt3:/scratch/vondele/clean/cp2k/src> gfortran -v -O3 -ffast-math
-ftree-vectorize -march=native test.f90
Driving: gfortran -v -O3 -ffast-math -ftree-vectorize -march=native test.f90
-lgfortranbegin -lgfortran -lm -shared-libgcc
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /data03/vondele/gcc_4_2_branch/gcc/configure
--prefix=/data03/vondele/gcc_4_2_branch/build --with-gmp=/data03/vondele/
--with-mpfr=/data03/vondele/ --enable-languages=c,fortran
Thread model: posix
gcc version 4.2.1 20070627 (prerelease)
/data03/vondele/gcc_4_2_branch/build/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/f951
test.f90 -march=k8 -mtune=k8 -quiet -dumpbase test.f90 -auxbase test -O3
-version -ffast-math -ftree-vectorize -I
/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/finclude
-o /tmp/ccTYHMGd.s
GNU F95 version 4.2.1 20070627 (prerelease) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.2.1 20070627 (prerelease).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
as -V -Qy -o /tmp/ccs8OyYj.o /tmp/ccTYHMGd.s
GNU assembler version 2.16.91.0.5 (x86_64-suse-linux) using BFD version
2.16.91.0.5 20051219 (SUSE Linux)
/data03/vondele/gcc_4_2_branch/build/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/collect2
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
/usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o
/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/crtbegin.o
-L/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1
-L/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../..
/tmp/ccs8OyYj.o -lgfortranbegin -lgfortran -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/crtfastmath.o
/data03/vondele/gcc_4_2_branch/build/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/crtend.o
/usr/lib/../lib64/crtn.o
vondele@pcihopt3:/scratch/vondele/clean/cp2k/src> ./a.out
2
20.0000000000000 20.0000000000000 20.0000000000000
vondele@pcihopt3:/scratch/vondele/clean/cp2k/src> gfortran -O0 test.f90
vondele@pcihopt3:/scratch/vondele/clean/cp2k/src> ./a.out
2
2.00000000000000 2.00000000000000 2.00000000000000
the result is incorrectly 20.0 instead of 2.0 with optimization
--
Summary: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize
-march=native
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jv244 at cam dot ac dot uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
@ 2007-06-28 8:13 ` ubizjak at gmail dot com
2007-06-28 8:14 ` ubizjak at gmail dot com
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-06-28 8:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from ubizjak at gmail dot com 2007-06-28 08:13 -------
Looks like problems in tree ifcvt pass. Before ifcvt, we have:
M.2_16 = (int4) D.1257_15;
if (M.2_16 > 1) goto <L7>; else goto <L9>;
<L7>:;
if (M.2_16 > 20) goto <L10>; else goto <L9>;
# M.2_64 = PHI <M.2_16(6), 1(5)>;
<L9>:;
pretmp.118_78 = (real8) M.2_64;
# prephitmp.119_79 = PHI <2.0e+1(6), pretmp.118_78(7)>;
# M.2_4 = PHI <20(6), M.2_64(7)>;
<L10>:;
But ifcvt creates:
D.1446_84 = M.2_16 > 1;
D.1447_85 = M.2_16 > 20;
_ifc_.127_86 = D.1446_84 && D.1447_85;
D.1449_87 = M.2_16 > 1;
D.1450_88 = M.2_16 <= 20;
_ifc_.128_89 = D.1449_87 && D.1450_88;
M.2_64 = M.2_16 > 1 ? M.2_16 : 1;
pretmp.118_78 = (real8) M.2_64;
prephitmp.119_79 = M.2_16 > 1 ? 2.0e+1 : pretmp.118_78;
M.2_4 = M.2_16 > 1 ? 20 : M.2_64;
Note the last two lines, where we compare "M.2_16 > 1" instead of "M.2_16 >
20".
This bug could be hidden in 4.3.0 as we use MIN_EXPR and MAX_EXPR here.
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|middle-end |tree-optimization
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-06-28 08:13:14
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
2007-06-28 8:13 ` [Bug tree-optimization/32533] [4.2 regression] " ubizjak at gmail dot com
@ 2007-06-28 8:14 ` ubizjak at gmail dot com
2007-06-28 8:36 ` rguenth at gcc dot gnu dot org
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-06-28 8:14 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from ubizjak at gmail dot com 2007-06-28 08:14 -------
(In reply to comment #1)
> This bug could be hidden in 4.3.0 as we use MIN_EXPR and MAX_EXPR here.
To clear the typo - we use MIN_EXPR and MAX_EXPR in 4.3.0.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
2007-06-28 8:13 ` [Bug tree-optimization/32533] [4.2 regression] " ubizjak at gmail dot com
2007-06-28 8:14 ` ubizjak at gmail dot com
@ 2007-06-28 8:36 ` rguenth at gcc dot gnu dot org
2007-06-29 7:13 ` jv244 at cam dot ac dot uk
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-06-28 8:36 UTC (permalink / raw)
To: gcc-bugs
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu dot
| |org
Known to fail|4.0.2 |4.2.0
Target Milestone|--- |4.2.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (2 preceding siblings ...)
2007-06-28 8:36 ` rguenth at gcc dot gnu dot org
@ 2007-06-29 7:13 ` jv244 at cam dot ac dot uk
2007-06-29 7:51 ` [Bug tree-optimization/32533] [4.1/4.2 " jv244 at cam dot ac dot uk
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jv244 at cam dot ac dot uk @ 2007-06-29 7:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from jv244 at cam dot ac dot uk 2007-06-29 07:13 -------
I'm wondering if it is still required to turn fortran testcases in the
equivalent C testcase in order to mark this kind of bugs as P1. This does seem
a bit of a waste of time... and just think about the engineers using Fortran to
design nuclear power plants... ;-)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (3 preceding siblings ...)
2007-06-29 7:13 ` jv244 at cam dot ac dot uk
@ 2007-06-29 7:51 ` jv244 at cam dot ac dot uk
2007-06-29 8:06 ` jv244 at cam dot ac dot uk
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jv244 at cam dot ac dot uk @ 2007-06-29 7:51 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from jv244 at cam dot ac dot uk 2007-06-29 07:50 -------
also fails with 4.1.3
gfortran -march=k8 -mtune=k8 -ftree-vectorize -ffast-math -O3 test.f90
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /data03/vondele/gcc_4_1_branch/gcc/configure
--prefix=/data03/vondele/gcc_4_1_branch/build --with-gmp=/data03/vondele/
--with-mpfr=/data03/vondele/ --enable-languages=c,fortran
Thread model: posix
gcc version 4.1.3 20070629 (prerelease)
--
jv244 at cam dot ac dot uk changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail|4.2.0 |4.2.0 4.1.3
Summary|[4.2 regression] |[4.1/4.2 regression]
|miscompilation at -O3 - |miscompilation at -O3 -
|ffast-math -ftree-vectorize |ffast-math -ftree-vectorize
|-march=native |-march=native
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (4 preceding siblings ...)
2007-06-29 7:51 ` [Bug tree-optimization/32533] [4.1/4.2 " jv244 at cam dot ac dot uk
@ 2007-06-29 8:06 ` jv244 at cam dot ac dot uk
2007-06-30 15:40 ` ubizjak at gmail dot com
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jv244 at cam dot ac dot uk @ 2007-06-29 8:06 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from jv244 at cam dot ac dot uk 2007-06-29 08:06 -------
works correctly with 4.0.4, so it is a regression:
gfortran -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /data03/vondele/gcc_4_0_branch/gcc/configure
--prefix=/data03/vondele/gcc_4_0_branch/build --with-gmp=/data03/vondele/
--with-mpfr=/data03/vondele/ --enable-languages=c,fortran
Thread model: posix
gcc version 4.0.4
--
jv244 at cam dot ac dot uk changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work|4.3.0 |4.3.0 4.0.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (5 preceding siblings ...)
2007-06-29 8:06 ` jv244 at cam dot ac dot uk
@ 2007-06-30 15:40 ` ubizjak at gmail dot com
2007-07-01 8:51 ` dorit at gcc dot gnu dot org
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-06-30 15:40 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from ubizjak at gmail dot com 2007-06-30 15:39 -------
Hm, in the dump (gcc-4.1.3), preceeding ifcvt, we have:
<L4>:;
D.985_28 = iftmp.5_4 + D.964_27;
M.2_29 = (int4) D.985_28;
if (M.2_29 > 1) goto <L7>; else goto <L9>;
<L7>:;
if (M.2_29 > 20) goto <L10>; else goto <L9>;
# M.2_61 = PHI <M.2_29(4), 1(3)>; <<<<<<---- here
<L9>:;
pretmp.98_1 = (real8) M.2_61;
# prephitmp.99_39 = PHI <2.0e+1(4), pretmp.98_1(5)>;
# M.2_3 = PHI <20(4), M.2_61(5)>;
<L10>:;
Isn't marked statement unreachable?
Comparing _.ssa dumps between 4.1 (wrong result) and 4.3 (correct result), we
have:
(4.1)
--cut here--
<L5>:;
M.1_36 = D.966_29;
goto <bb 8> (<L7>);
<L6>:;
M.1_35 = 1;
# M.1_2 = PHI <M.1_36(6), M.1_35(7)>; <<<< here (4.1)
<L7>:;
if (M.1_2 > 20) goto <L8>; else goto <L9>;
<L8>:;
M.2_34 = 20;
goto <bb 11> (<L10>);
--cut here--
versus
(4.3)
--cut here--
<bb 8>:
M.1_17 = D.1365_16;
goto <bb 10>;
<bb 9>:
M.1_18 = 1;
<bb 10>:
# M.1_1 = PHI <M.1_17(8), M.1_18(9)> <<<< here (4.3)
if (20 < M.1_1)
goto <bb 11>;
else
goto <bb 12>;
<bb 11>:
M.2_19 = 20;
goto <bb 13>;
---cut here---
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (6 preceding siblings ...)
2007-06-30 15:40 ` ubizjak at gmail dot com
@ 2007-07-01 8:51 ` dorit at gcc dot gnu dot org
2007-07-01 9:40 ` ubizjak at gmail dot com
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: dorit at gcc dot gnu dot org @ 2007-07-01 8:51 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from dorit at gcc dot gnu dot org 2007-07-01 08:51 -------
PR31966 is also wrong code which seems to be a result of the tree-level
if-conversion (nothing gets vectorized these, and if tree-if-conversion is
disabled everything works ok).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (7 preceding siblings ...)
2007-07-01 8:51 ` dorit at gcc dot gnu dot org
@ 2007-07-01 9:40 ` ubizjak at gmail dot com
2007-07-02 9:41 ` ubizjak at gmail dot com
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-07-01 9:40 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from ubizjak at gmail dot com 2007-07-01 09:40 -------
(In reply to comment #6)
> Hm, in the dump (gcc-4.1.3), preceeding ifcvt, we have:
> Isn't marked statement unreachable?
The problem is in ifcvt pass, as confirmed by a c testcase in PR31966. This
problem is also present in 4.3 branch, but (as explained in Comment #1), not
triggered by the fortran testcase in this PR.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (8 preceding siblings ...)
2007-07-01 9:40 ` ubizjak at gmail dot com
@ 2007-07-02 9:41 ` ubizjak at gmail dot com
2007-07-02 10:21 ` jv244 at cam dot ac dot uk
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-07-02 9:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from ubizjak at gmail dot com 2007-07-02 09:40 -------
Created an attachment (id=13822)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13822&action=view)
The patch to fix tree-if-conv.c
Joost, could you please test this 4.2 patch with CP2K? It fixes the testcase
you provided (and PR31966, FWIW).
BTW: Could you create the testcase that would be suitable for gfortran
testsuite?
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |ubizjak at gmail dot com
|dot org |
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (9 preceding siblings ...)
2007-07-02 9:41 ` ubizjak at gmail dot com
@ 2007-07-02 10:21 ` jv244 at cam dot ac dot uk
2007-07-02 14:26 ` uros at gcc dot gnu dot org
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jv244 at cam dot ac dot uk @ 2007-07-02 10:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from jv244 at cam dot ac dot uk 2007-07-02 10:21 -------
> Joost, could you please test this 4.2 patch with CP2K? It fixes the testcase
> you provided (and PR31966, FWIW).
>
the testcase passes, the CP2K tests that were previously failing now seem to
pass as well .... many thanks for fixing this issue
> BTW: Could you create the testcase that would be suitable for gfortran
> testsuite?
this aborts before and passes after the patch:
SUBROUTINE T(nsubcell,sab_max,subcells)
INTEGER, PARAMETER :: dp=KIND(0.0D0)
REAL(dp) :: sab_max(3), subcells,nsubcell(3)
nsubcell(:) = MIN(MAX(1,NINT(0.5_dp*subcells/sab_max(:))),20)
END SUBROUTINE
INTEGER, PARAMETER :: dp=KIND(0.0D0)
REAL(dp) :: sab_max(3), subcells,nsubcell(3)
subcells=2.0_dp
sab_max=0.590060749244805_dp
CALL T(nsubcell,sab_max,subcells)
IF (ANY(nsubcell.NE.2.0_dp)) CALL ABORT()
END
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (10 preceding siblings ...)
2007-07-02 10:21 ` jv244 at cam dot ac dot uk
@ 2007-07-02 14:26 ` uros at gcc dot gnu dot org
2007-07-04 3:31 ` mmitchel at gcc dot gnu dot org
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: uros at gcc dot gnu dot org @ 2007-07-02 14:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from uros at gcc dot gnu dot org 2007-07-02 14:26 -------
Subject: Bug 32533
Author: uros
Date: Mon Jul 2 14:26:11 2007
New Revision: 126206
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126206
Log:
PR tree-optimization/31966
PR tree-optimization/32533
* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
"basic_block" description as its third argument. Update function
calls to get destination bb from "edge" argument. Save "cond" into
aux field of the edge. Update prototype for changed arguments.
(find_phi_replacement_condition): Operate on incoming edges, not
on predecessor blocks. If there is a condition saved in the
incoming edge aux field, AND it with incoming bb predicate.
Return source bb of the first edge.
(clean_predicate_lists): Clean aux field of outgoing node edges.
(tree_if_conversion): Do not initialize cond variable. Move
variable declaration into the loop.
(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
initializations of new_stmt, arg0 and arg1 variables.
testsuite/ChangeLog:
PR tree-optimization/31966
PR tree-optimization/32533
* gcc.dg/tree-ssa/pr31966.c: New runtime test.
* gfortran.dg/pr32533.f90: Ditto.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
trunk/gcc/testsuite/gfortran.dg/pr32533.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (11 preceding siblings ...)
2007-07-02 14:26 ` uros at gcc dot gnu dot org
@ 2007-07-04 3:31 ` mmitchel at gcc dot gnu dot org
2007-07-04 5:41 ` uros at gcc dot gnu dot org
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-07-04 3:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from mmitchel at gcc dot gnu dot org 2007-07-04 03:31 -------
Uros, is it feasible to backport this to 4.2?
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (12 preceding siblings ...)
2007-07-04 3:31 ` mmitchel at gcc dot gnu dot org
@ 2007-07-04 5:41 ` uros at gcc dot gnu dot org
2007-07-04 5:49 ` uros at gcc dot gnu dot org
2007-07-04 5:56 ` ubizjak at gmail dot com
15 siblings, 0 replies; 17+ messages in thread
From: uros at gcc dot gnu dot org @ 2007-07-04 5:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from uros at gcc dot gnu dot org 2007-07-04 05:41 -------
Subject: Bug 32533
Author: uros
Date: Wed Jul 4 05:40:58 2007
New Revision: 126301
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126301
Log:
PR tree-optimization/31966
PR tree-optimization/32533
* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
"basic_block" description as its third argument. Update function
calls to get destination bb from "edge" argument. Save "cond" into
aux field of the edge. Update prototype for changed arguments.
(if_convertible_loop_p): Clear aux field of incoming edges if bb
contains phi node.
(find_phi_replacement_condition): Operate on incoming edges, not
on predecessor blocks. If there is a condition saved in the
incoming edge aux field, AND it with incoming bb predicate.
Return source bb of the first edge.
(clean_predicate_lists): Clean aux field of outgoing node edges.
(tree_if_conversion): Do not initialize cond variable. Move
variable declaration into the loop.
(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
initializations of new_stmt, arg0 and arg1 variables.
testsuite/ChangeLog:
PR tree-optimization/31966
PR tree-optimization/32533
* gcc.dg/tree-ssa/pr31966.c: New runtime test.
* gfortran.dg/pr32533.f90: Ditto.
Added:
branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/pr32533.f90
Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/gcc/tree-if-conv.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (13 preceding siblings ...)
2007-07-04 5:41 ` uros at gcc dot gnu dot org
@ 2007-07-04 5:49 ` uros at gcc dot gnu dot org
2007-07-04 5:56 ` ubizjak at gmail dot com
15 siblings, 0 replies; 17+ messages in thread
From: uros at gcc dot gnu dot org @ 2007-07-04 5:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from uros at gcc dot gnu dot org 2007-07-04 05:49 -------
Subject: Bug 32533
Author: uros
Date: Wed Jul 4 05:49:31 2007
New Revision: 126302
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126302
Log:
PR tree-optimization/31966
PR tree-optimization/32533
* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
"basic_block" description as its third argument. Update function
calls to get destination bb from "edge" argument. Save "cond" into
aux field of the edge. Update prototype for changed arguments.
(if_convertible_loop_p): Clear aux field of incoming edges if bb
contains phi node.
(find_phi_replacement_condition): Operate on incoming edges, not
on predecessor blocks. If there is a condition saved in the
incoming edge aux field, AND it with incoming bb predicate.
Return source bb of the first edge.
(clean_predicate_lists): Clean aux field of outgoing node edges.
(tree_if_conversion): Do not initialize cond variable. Move
variable declaration into the loop.
(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
initializations of new_stmt, arg0 and arg1 variables.
testsuite/ChangeLog:
PR tree-optimization/31966
PR tree-optimization/32533
* gcc.dg/tree-ssa/pr31966.c: New runtime test.
* gfortran.dg/pr32533.f90: Ditto.
Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/pr32533.f90
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/gcc/tree-if-conv.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug tree-optimization/32533] [4.1/4.2 regression] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
` (14 preceding siblings ...)
2007-07-04 5:49 ` uros at gcc dot gnu dot org
@ 2007-07-04 5:56 ` ubizjak at gmail dot com
15 siblings, 0 replies; 17+ messages in thread
From: ubizjak at gmail dot com @ 2007-07-04 5:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from ubizjak at gmail dot com 2007-07-04 05:56 -------
(In reply to comment #12)
> Uros, is it feasible to backport this to 4.2?
Sure, the patch was just waiting a couple of days on mainline for possible
problems. This bug is now fixed on mainline and branches.
--
ubizjak at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|ubizjak at gmail dot com |
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32533
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2007-07-04 5:56 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-28 6:07 [Bug middle-end/32533] New: [4.2] miscompilation at -O3 -ffast-math -ftree-vectorize -march=native jv244 at cam dot ac dot uk
2007-06-28 8:13 ` [Bug tree-optimization/32533] [4.2 regression] " ubizjak at gmail dot com
2007-06-28 8:14 ` ubizjak at gmail dot com
2007-06-28 8:36 ` rguenth at gcc dot gnu dot org
2007-06-29 7:13 ` jv244 at cam dot ac dot uk
2007-06-29 7:51 ` [Bug tree-optimization/32533] [4.1/4.2 " jv244 at cam dot ac dot uk
2007-06-29 8:06 ` jv244 at cam dot ac dot uk
2007-06-30 15:40 ` ubizjak at gmail dot com
2007-07-01 8:51 ` dorit at gcc dot gnu dot org
2007-07-01 9:40 ` ubizjak at gmail dot com
2007-07-02 9:41 ` ubizjak at gmail dot com
2007-07-02 10:21 ` jv244 at cam dot ac dot uk
2007-07-02 14:26 ` uros at gcc dot gnu dot org
2007-07-04 3:31 ` mmitchel at gcc dot gnu dot org
2007-07-04 5:41 ` uros at gcc dot gnu dot org
2007-07-04 5:49 ` uros at gcc dot gnu dot org
2007-07-04 5:56 ` ubizjak at gmail dot com
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).