[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 Dominique d'Humieres changed: What|Removed |Added CC||meissner at gcc dot gnu.org --- Comment #53 from Dominique d'Humieres 2010-11-22 10:01:21 UTC --- This PR has been fixed by revision 166947 Revision 166947 Jump to revision: Author:meissner Date:Fri Nov 19 17:27:18 2010 UTC (2 days, 16 hours ago) Changed paths:25 Log Message: Add PowerPC target attribute/pragma support Changed paths: PathDetails trunk/gcc/ChangeLogmodified , text changed trunk/gcc/Makefile.inmodified , text changed trunk/gcc/config/rs6000/aix.optmodified , text changed trunk/gcc/config/rs6000/aix64.optmodified , text changed trunk/gcc/config/rs6000/linux64.hmodified , text changed trunk/gcc/config/rs6000/linux64.optmodified , text changed trunk/gcc/config/rs6000/rs6000-opts.hadded trunk/gcc/config/rs6000/rs6000-protos.hmodified , text changed trunk/gcc/config/rs6000/rs6000.cmodified , text changed trunk/gcc/config/rs6000/rs6000.hmodified , text changed trunk/gcc/config/rs6000/rs6000.optmodified , text changed trunk/gcc/config/rs6000/sysv4.hmodified , text changed trunk/gcc/config/rs6000/sysv4.optmodified , text changed trunk/gcc/configuremodified , text changed trunk/gcc/configure.acmodified , text changed trunk/gcc/doc/extend.teximodified , text changed trunk/gcc/doc/invoke.teximodified , text changed trunk/gcc/doc/options.teximodified , text changed trunk/gcc/opt-include.awkadded trunk/gcc/optc-gen.awkmodified , text changed trunk/gcc/opth-gen.awkmodified , text changed trunk/gcc/testsuite/ChangeLogmodified , text changed trunk/gcc/testsuite/gcc.target/powerpc/ppc-target-1.cadded trunk/gcc/testsuite/gcc.target/powerpc/ppc-target-2.cadded trunk/gcc/testsuite/gcc.target/powerpc/ppc-target-3.cadded Before I close the PR as fixed, is anyone interested to understand why this revision fixed it?
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #54 from Jakub Jelinek 2010-11-26 15:20:37 UTC --- Perhaps try to build with r166946 and r166947 the testcase with -fdump-tree-all -fdump-rtl-all, see where the dumps start diverging and what is the difference between assembly outputs?
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #55 from Dominique d'Humieres 2010-11-26 15:48:44 UTC --- > Perhaps try to build with r166946 and r166947 the testcase with > -fdump-tree-all > -fdump-rtl-all, see where the dumps start diverging and what is the difference > between assembly outputs? First difference is the following!-( diff 166946/0/where_2.f90.003t.original 166947/0/where_2.f90.003t.original 183c183 < integer(kind=4) D.1181; --- > integer(kind=4) D.1179; 199c199 < D.1181 = val.27; --- > D.1179 = val.27; 209c209 < temp[S.29 + -1] = temp[S.29 + -1] + D.1181; --- > temp[S.29 + -1] = temp[S.29 + -1] + D.1179; How am I supposed to go further?
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #56 from Jakub Jelinek 2010-11-26 16:20:18 UTC --- That is an unimportant difference. It is fine if a different uid is used, as long as it used consistently through the whole source. You can -fdump-tree-all-nouid and -fdump-rtl-all-nouid alternatively and look for differences in that case.
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #57 from Dominique d'Humieres 2010-11-26 16:54:08 UTC --- > That is an unimportant difference. It is fine if a different uid is used, as > long as it used consistently through the whole source. I understand, but it make the diff of ~200 files impractical. > You can -fdump-tree-all-nouid and -fdump-rtl-all-nouid alternatively and look > for differences in that case. Then I can go a little further to diff 166946/where_2.f90.025t.ealias 166947/where_2.f90.025t.ealias 23,24c23,24 < D.1218_25 = S.0_1 < D.1218_25 = &NONLOCAL --- > D.1216_25 = S.0_1 > D.1216_25 = &NONLOCAL ... diff 166946/where_2.f90.191r.sched1 166947/where_2.f90.191r.sched1 16c16 < ;; 0-->19 r440=0 :ppc750_du,iu1_7xx|iu2_7xx --- > ;; 0-->19 r440=0:iu1_6xx|iu2_6xx 20c20 < ;; 1-->47 [sfp+0x54]=r440#3 :ppc750_du,lsu_7xx --- > ;; 1-->47 [sfp+0x54]=r440#3 :lsu_6xx 24c24 < ;; 2--> 9 r435=0xa :ppc750_du,iu1_7xx|iu2_7xx --- > ;; 2--> 9 r435=0xa :iu1_6xx|iu2_6xx 28c28 < ;; 3-->99 r885=[sfp+0x54] :ppc750_du,lsu_7xx --- > ;; 3-->13 r437=0x :iu1_6xx|iu2_6xx 32c32 < ;; 4-->13 r437=0x :ppc750_du,iu1_7xx|iu2_7xx --- > ;; 4-->99 r885=[sfp+0x54] :lsu_6xx 36c36 < ;; 5--> 101 {r485=cmp(zxn(r885),0);clobber scr:ppc750_du,iu1_7xx|iu2_7xx --- > ;; 5-->68 r470=0x64 :iu1_6xx|iu2_6xx 40c40 < ;; 6-->68 r470=0x64 :ppc750_du,iu1_7xx|iu2_7xx --- > ;; 6--> 101 {r485=cmp(zxn(r885),0);clobber scr:iu1_6xx|iu2_6xx ... 2697c2697 < (insn 9 47 99 2 (set (reg:SI 435) --- > (insn 9 47 13 2 (set (reg:SI 435) 2701c2701,2705 < (insn 99 9 13 2 (set (reg:QI 885 [ temp.5+4 ]) --- > (insn 13 9 99 2 (set (reg:SI 437) > (const_int -1 [0x])) ../where_2.f90:6 353 > {*movsi_internal1} > (nil)) > > (insn 99 13 68 2 (set (reg:QI 885 [ temp.5+4 ]) 2706,2707c2710,2711 < (insn 13 99 101 2 (set (reg:SI 437) < (const_int -1 [0x])) ../where_2.f90:6 353 {*movsi_internal1} --- > (insn 68 99 101 2 (set (reg:SI 470) > (const_int 100 [0x64])) ../where_2.f90:11 353 {*movsi_internal1} 2710c2714 < (insn 101 13 68 2 (parallel [ --- > (insn 101 68 5 2 (parallel [ 2718,2722c2722 < (insn 68 101 5 2 (set (reg:SI 470) < (const_int 100 [0x64])) ../where_2.f90:11 353 {*movsi_internal1} < (nil)) < < (insn 5 68 25 2 (set (reg:V4SI 433) --- > (insn 5 101 25 2 (set (reg:V4SI 433) 3189c3189 < (insn 160 879 181 14 (set (reg:SI 243 [ mask.16+-3 ]) --- > (insn 160 879 161 14 (set (reg:SI 243 [ mask.16+-3 ]) 3195c3195,3203 < (insn 181 160 195 14 (set (reg:SI 893 [ reduce+8 ]) --- > (insn 161 160 181 14 (parallel [ > (set (reg:SI 513) > (and:SI (reg:SI 241 [ cond.15+-3 ]) > (reg:SI 243 [ mask.16+-3 ]))) > (clobber (scratch:CC)) > ]) ../where_2.f90:11 161 {andsi3_mc} > (nil)) > > (insn 181 161 195 14 (set (reg:SI 893 [ reduce+8 ]) 3230c3238 < (insn 279 265 161 14 (set (reg:SI 871 [ reduce+36 ]) --- > (insn 279 265 295 14 (set (reg:SI 871 [ reduce+36 ]) 3235,3241c3243,3247 < (insn 161 279 880 14 (parallel [ < (set (reg:SI 513) < (and:SI (reg:SI 241 [ cond.15+-3 ]) < (reg:SI 243 [ mask.16+-3 ]))) < (clobber (scratch:CC)) < ]) ../where_2.f90:11 161 {andsi3_mc} < (nil)) --- > (insn 295 279 880 14 (set (reg:CC 609) > (compare:CC (reg:SI 513) > (const_int 0 [0]))) ../where_2.f90:11 451 {*cmpsi_internal1} > (expr_list:REG_DEAD (reg:SI 513) > (nil))) ...
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #58 from Jakub Jelinek 2010-11-26 17:34:23 UTC --- At least in my cross it seems the r166947 commit just changed default tuning for -m64, from -mtune=power4 to -mtune=rs64. Not sure if it was intentional or not. Anyway, with explicit -mtune=power4 the result is exactly the same as before without any tuning options (and with -mtune=rs64 before is the same as now without any tuning options).
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #59 from Jakub Jelinek 2010-11-27 17:51:38 UTC --- Can you please try latest trunk, if the test works with -O3 -m64 -mtune=rs64 and fails with -O3 -m64 -mtune=power4 ?
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #60 from Dominique d'Humieres 2010-11-27 21:49:28 UTC --- > Can you please try latest trunk, if the test works with -O3 -m64 -mtune=rs64 > and fails with -O3 -m64 -mtune=power4 ? Confirmed, but I have no idea of what is the default on darwin.
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082 --- Comment #61 from Jakub Jelinek 2010-12-07 22:07:59 UTC --- I've managed to massage both -O3 -m64 -mtune={rs64,power4} darwin assembly into ppc64-linux assembly. Before DSE2 we have: (insn 460 483 925 33 (set (reg:CC 75 cr7) (compare:CC (reg:SI 11 r11 [orig:866 reduce+32 ] [866]) (const_int 6 [0x6]))) where_2.f90:11 451 {*cmpsi_internal1} (nil)) (insn 925 460 926 33 (set (reg:CC 0 r0) (reg:CC 75 cr7)) where_2.f90:11 358 {*movcc_internal1} (nil)) (insn 926 925 467 33 (set (mem/c:CC (plus:DI (reg/f:DI 1 r1) (const_int 272 [0x110])) [5 %sfp+272 S4 A32]) (reg:CC 0 r0)) where_2.f90:11 358 {*movcc_internal1} (nil)) ... # %sfp+272 not used anywhere here (insn 931 415 932 33 (set (reg:CC 19 r19) (mem/c:CC (plus:DI (reg/f:DI 1 r1) (const_int 272 [0x110])) [5 %sfp+272 S4 A32])) where_2.f90:11 358 {*movcc_internal1} (nil)) (insn 932 931 461 33 (set (reg:CC 74 cr6) (reg:CC 19 r19)) where_2.f90:11 358 {*movcc_internal1} (nil)) (insn 461 932 422 33 (set (reg:SI 27 r27 [712]) (gt:SI (reg:CC 74 cr6) (const_int 0 [0]))) where_2.f90:11 462 {*rs6000.md:13486} (nil)) and DSE2 somehow decides to nuke the insn 926 store. The error could be also that RA decides to share %sfp+272 not just for the CCmode stuff, but also before that for a SImode value. Looking into it...
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
--- Comment #50 from dominiq at lps dot ens dot fr 2010-07-25 10:20 --- Between revisions 162269 and 162477 this pr has been fixed for -m64 (but not for -m32). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
--- Comment #51 from rguenth at gcc dot gnu dot org 2010-07-31 09:29 --- GCC 4.5.1 is being released, adjusting target milestone. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.5.1 |4.5.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
--- Comment #52 from dominiq at lps dot ens dot fr 2010-08-06 07:33 --- The miscompilation with -m64 is back at revision 162879. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3
--- Comment #49 from dominiq at lps dot ens dot fr 2010-05-14 09:28 --- > Any news on this? Still there at revision 159329. Ira Rosen has devoted a fair amount of time to trace the problem, but nobody cared to pursue. Presently this PR has nothing to do with -g nor -ma64, so I updated the summary. Note that bootstrapping gcc on powerpc-apple-darwin9 is broken since revision 159339!-(each time a fix is posted an other breakage follows). -- dominiq at lps dot ens dot fr changed: What|Removed |Added Summary|[4.5/4.6 Regression] FAIL: |[4.5/4.6 Regression] FAIL: |gfortran.fortran- |gfortran.fortran- |torture/execute/where_2.f90 |torture/execute/where_2.f90 |execution, -O3 -g with -m64|execution, -O3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082
[Bug middle-end/41082] [4.5/4.6 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64
--- Comment #48 from tkoenig at gcc dot gnu dot org 2010-05-13 18:04 --- Any news on this? -- tkoenig at gcc dot gnu dot org changed: What|Removed |Added CC||tkoenig at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082