Oleg Endo <[email protected]> wrote:
> Kaz, could you please test the patch on your sh4-linux setup and report
> your findings? Even though it's a bit late, I'd like to get this in for
> GCC 5, if it doesn't break too many things.
Looks wrong code problem for tls and atomic constructs.
Here is the result of compare_tests for unpatched/patched
sh4-unknown-linux-gnu compilers:
New tests that FAIL:
g++.dg/tls/static-1.C -std=gnu++11 execution test
g++.dg/tls/static-1.C -std=gnu++14 execution test
g++.dg/tls/static-1.C -std=gnu++98 execution test
g++.dg/tls/thread_local-cse.C -std=gnu++11 execution test
g++.dg/tls/thread_local-cse.C -std=gnu++14 execution test
gcc.dg/atomic/stdatomic-op-1.c -O1 execution test
gcc.dg/atomic/stdatomic-op-1.c -O2 execution test
gcc.dg/atomic/stdatomic-op-1.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none execution test
gcc.dg/atomic/stdatomic-op-1.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects execution test
gcc.dg/atomic/stdatomic-op-1.c -O3 -fomit-frame-pointer execution test
gcc.dg/atomic/stdatomic-op-1.c -O3 -g execution test
gcc.dg/atomic/stdatomic-op-1.c -Os execution test
gcc.dg/tls/pr24428.c execution test
gcc.dg/torture/tls/run-le.c -O1 -fPIC execution test
gcc.dg/torture/tls/run-le.c -O1 -fpic execution test
gcc.dg/torture/tls/run-le.c -O2 -fPIC execution test
gcc.dg/torture/tls/run-le.c -O2 -fpic execution test
gcc.dg/torture/tls/run-le.c -O3 -fomit-frame-pointer -fPIC execution test
gcc.dg/torture/tls/run-le.c -O3 -fomit-frame-pointer -fpic execution test
gcc.dg/torture/tls/run-le.c -O3 -g -fPIC execution test
gcc.dg/torture/tls/run-le.c -O3 -g -fpic execution test
gcc.dg/torture/tls/run-le.c -Os -fPIC execution test
gcc.dg/torture/tls/run-le.c -Os -fpic execution test
gcc.dg/torture/tls/thr-init-1.c -O1 execution test
gcc.dg/torture/tls/thr-init-1.c -O2 execution test
gcc.dg/torture/tls/thr-init-1.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none execution test
gcc.dg/torture/tls/thr-init-1.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects execution test
gcc.dg/torture/tls/thr-init-1.c -O3 -fomit-frame-pointer execution test
gcc.dg/torture/tls/thr-init-1.c -O3 -g execution test
gcc.dg/torture/tls/thr-init-1.c -Os execution test
gcc.dg/torture/tls/thr-init-2.c -O1 execution test
gcc.dg/torture/tls/thr-init-2.c -O2 execution test
gcc.dg/torture/tls/thr-init-2.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none execution test
gcc.dg/torture/tls/thr-init-2.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects execution test
gcc.dg/torture/tls/thr-init-2.c -O3 -fomit-frame-pointer execution test
gcc.dg/torture/tls/thr-init-2.c -O3 -g execution test
gcc.dg/torture/tls/thr-init-2.c -Os execution test
gcc.dg/torture/tls/tls-reload-1.c -O1 execution test
gcc.dg/torture/tls/tls-test.c -O1 execution test
gcc.dg/torture/tls/tls-test.c -O2 execution test
gcc.dg/torture/tls/tls-test.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none execution test
gcc.dg/torture/tls/tls-test.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects execution test
gcc.dg/torture/tls/tls-test.c -O3 -fomit-frame-pointer execution test
gcc.dg/torture/tls/tls-test.c -O3 -g execution test
gcc.dg/torture/tls/tls-test.c -Os execution test
gcc.target/sh/pr51244-4.c scan-assembler-times not 1
libgomp.c/copyin-1.c execution test
libgomp.c/copyin-2.c execution test
libgomp.fortran/allocatable11.f90 -O1 execution test
libgomp.fortran/allocatable11.f90 -O2 execution test
libgomp.fortran/allocatable11.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/allocatable11.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/allocatable11.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/allocatable11.f90 -O3 -g execution test
libgomp.fortran/allocatable11.f90 -Os execution test
libgomp.fortran/allocatable2.f90 -O1 execution test
libgomp.fortran/allocatable2.f90 -O2 execution test
libgomp.fortran/allocatable2.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/allocatable2.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/allocatable2.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/allocatable2.f90 -O3 -g execution test
libgomp.fortran/allocatable2.f90 -Os execution test
libgomp.fortran/allocatable8.f90 -O1 execution test
libgomp.fortran/allocatable8.f90 -O2 execution test
libgomp.fortran/allocatable8.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/allocatable8.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/allocatable8.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/allocatable8.f90 -O3 -g execution test
libgomp.fortran/allocatable8.f90 -Os execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O1 execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O2 execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/appendix-a/a.22.7.f90 -O3 -g execution test
libgomp.fortran/appendix-a/a.22.7.f90 -Os execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O1 execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O2 execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/appendix-a/a.22.8.f90 -O3 -g execution test
libgomp.fortran/appendix-a/a.22.8.f90 -Os execution test
libgomp.fortran/crayptr2.f90 -O2 execution test
libgomp.fortran/crayptr2.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/crayptr2.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/crayptr2.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/crayptr2.f90 -O3 -g execution test
libgomp.fortran/crayptr2.f90 -Os execution test
libgomp.fortran/omp_parse3.f90 -O1 execution test
libgomp.fortran/omp_parse3.f90 -O2 execution test
libgomp.fortran/omp_parse3.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/omp_parse3.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/omp_parse3.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/omp_parse3.f90 -O3 -g execution test
libgomp.fortran/pointer2.f90 -O1 execution test
libgomp.fortran/pointer2.f90 -O2 execution test
libgomp.fortran/pointer2.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/pointer2.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/pointer2.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/pointer2.f90 -O3 -g execution test
libgomp.fortran/pointer2.f90 -Os execution test
libgomp.fortran/pr25162.f -O1 execution test
libgomp.fortran/pr25162.f -O2 execution test
libgomp.fortran/pr25162.f -O3 -fomit-frame-pointer execution test
libgomp.fortran/pr25162.f -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
libgomp.fortran/pr25162.f -O3 -fomit-frame-pointer -funroll-loops execution
test
libgomp.fortran/pr25162.f -O3 -g execution test
libgomp.fortran/pr25162.f -Os execution test
libgomp.fortran/threadprivate1.f90 -O1 execution test
libgomp.fortran/threadprivate1.f90 -O2 execution test
libgomp.fortran/threadprivate1.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/threadprivate1.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/threadprivate1.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/threadprivate1.f90 -O3 -g execution test
libgomp.fortran/threadprivate1.f90 -Os execution test
libgomp.fortran/threadprivate2.f90 -O1 execution test
libgomp.fortran/threadprivate2.f90 -O2 execution test
libgomp.fortran/threadprivate2.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/threadprivate2.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/threadprivate2.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/threadprivate2.f90 -O3 -g execution test
libgomp.fortran/threadprivate2.f90 -Os execution test
libgomp.fortran/threadprivate3.f90 -O1 execution test
libgomp.fortran/threadprivate3.f90 -O2 execution test
libgomp.fortran/threadprivate3.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/threadprivate3.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/threadprivate3.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/threadprivate3.f90 -O3 -g execution test
libgomp.fortran/threadprivate3.f90 -Os execution test
libgomp.fortran/threadprivate4.f90 -O1 execution test
libgomp.fortran/threadprivate4.f90 -O2 execution test
libgomp.fortran/threadprivate4.f90 -O3 -fomit-frame-pointer execution test
libgomp.fortran/threadprivate4.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
libgomp.fortran/threadprivate4.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
libgomp.fortran/threadprivate4.f90 -O3 -g execution test
libgomp.fortran/threadprivate4.f90 -Os execution test
libgomp.fortran/udr14.f90 -O3 -g (internal compiler error)
libgomp.fortran/udr14.f90 -O3 -g (test for excess errors)
objc.dg/torture/tls/thr-init-2.m -O1 -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -O1 -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -O2 -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -O2 -flto -fno-use-linker-plugin
-flto-partition=none -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -O3 -fomit-frame-pointer -fgnu-runtime
execution test
objc.dg/torture/tls/thr-init-3.m -O3 -g -fgnu-runtime execution test
objc.dg/torture/tls/thr-init-3.m -Os -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -O1 -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -O2 -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -O2 -flto -fno-use-linker-plugin
-flto-partition=none -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -O3 -fomit-frame-pointer -fgnu-runtime
execution test
objc.dg/torture/tls/thr-init.m -O3 -g -fgnu-runtime execution test
objc.dg/torture/tls/thr-init.m -Os -fgnu-runtime execution test
Old tests that passed, that have disappeared: (Eeek!)
gcc.target/sh/pr49263-1.c scan-assembler-not bclr
gcc.target/sh/pr49263-1.c scan-assembler-times extu 1
gcc.target/sh/pr49263-2.c scan-assembler-times -129 2
gcc.target/sh/pr49263-2.c scan-assembler-times extu 1
Regards,
kaz