Hi Suwa-san, On Mon, May 8, 2023 at 6:38 AM Takayuki 'January June' Suwa <jjsuwa_sys3...@yahoo.co.jp> wrote: > > gcc/ChangeLog: > > * config/xtensa/constraints.md (R, T, U): > Change define_constraint to define_memory_constraint. > * config/xtensa/xtensa.cc > (xtensa_lra_p, TARGET_LRA_P): Remove. > (xtensa_emit_move_sequence): Remove "if (reload_in_progress)" > clause as it can no longer be true. > (xtensa_output_integer_literal_parts): Consider 16-bit wide > constants. > (xtensa_legitimate_constant_p): Add short-circuit path for > integer load instructions. > * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p() > rather reload_in_progress and reload_completed. > * config/xtensa/xtensa.opt (mlra): Remove. > --- > gcc/config/xtensa/constraints.md | 26 ++++++++------------------ > gcc/config/xtensa/xtensa.cc | 26 +++++--------------------- > gcc/config/xtensa/xtensa.md | 2 +- > gcc/config/xtensa/xtensa.opt | 4 ---- > 4 files changed, 14 insertions(+), 44 deletions(-)
That's impressive. This version introduces a few execution failures in the testsuite on little endian targets and a bunch more (but not all, some execution tests still pass) on big endian. I'm traveling this week and likely won't be able to take a deep look into it until 5/15. New LE failures: +FAIL: gcc.c-torture/execute/pr56866.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.dg/torture/pr45764.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.dg/torture/pr45764.c -O3 -g execution test +FAIL: gfortran.dg/c-interop/section-2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/c-interop/section-2p.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/c-interop/section-3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/c-interop/section-3p.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/bind-c-contiguous-3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/bind-c-contiguous-3.f90 -O3 -g execution test +FAIL: gfortran.dg/check_bits_2.f90 -O1 output pattern test +FAIL: gfortran.dg/coarray_ptr_comp_1.f08 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/coarray_ptr_comp_1.f08 -O3 -g execution test +FAIL: gfortran.dg/loc_2.f90 -O2 execution test +FAIL: gfortran.dg/loc_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.dg/loc_2.f90 -O3 -g execution test +FAIL: gfortran.dg/loc_2.f90 -Os execution test +FAIL: gfortran.dg/sizeof_6.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gfortran.fortran-torture/execute/forall_7.f90 execution, -O2 -fbounds-check New BE failures: +FAIL: gcc.c-torture/execute/builtins/memset-chk.c execution, -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions +FAIL: gcc.c-torture/execute/builtins/memset-chk.c execution, -O3 -g +FAIL: gcc.c-torture/execute/20000412-3.c -O2 execution test +FAIL: gcc.c-torture/execute/20000412-3.c -O3 -g execution test +FAIL: gcc.c-torture/execute/20000412-3.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/20020201-1.c -O2 execution test +FAIL: gcc.c-torture/execute/20020201-1.c -O3 -g execution test +FAIL: gcc.c-torture/execute/20020201-1.c -Os execution test +FAIL: gcc.c-torture/execute/20020201-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/20030224-2.c -O0 execution test +FAIL: gcc.c-torture/execute/20040629-1.c -O0 execution test +FAIL: gcc.c-torture/execute/20040629-1.c -O1 execution test +FAIL: gcc.c-torture/execute/20040705-1.c -O0 execution test +FAIL: gcc.c-torture/execute/20040705-1.c -O1 execution test +FAIL: gcc.c-torture/execute/20040705-2.c -O0 execution test +FAIL: gcc.c-torture/execute/20040705-2.c -O1 execution test +FAIL: gcc.c-torture/execute/930603-3.c -O2 execution test +FAIL: gcc.c-torture/execute/930603-3.c -O3 -g execution test +FAIL: gcc.c-torture/execute/930603-3.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/931004-10.c -O2 execution test +FAIL: gcc.c-torture/execute/931004-10.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/931004-10.c -O3 -g execution test +FAIL: gcc.c-torture/execute/931004-10.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/931004-10.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.c-torture/execute/931004-7.c -O2 execution test +FAIL: gcc.c-torture/execute/931004-7.c -O3 -g execution test +FAIL: gcc.c-torture/execute/931004-7.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/931004-8.c -O2 execution test +FAIL: gcc.c-torture/execute/931004-8.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/931004-8.c -O3 -g execution test +FAIL: gcc.c-torture/execute/931004-8.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/931004-8.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.c-torture/execute/931004-9.c -O2 execution test +FAIL: gcc.c-torture/execute/931004-9.c -O3 -g execution test +FAIL: gcc.c-torture/execute/931004-9.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/950322-1.c -O2 execution test +FAIL: gcc.c-torture/execute/950322-1.c -O3 -g execution test +FAIL: gcc.c-torture/execute/950322-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -O0 execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -O1 execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -O2 execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -O3 -g execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -Os execution test +FAIL: gcc.c-torture/execute/bf-pack-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/pr56866.c -O0 execution test +FAIL: gcc.c-torture/execute/pr56866.c -O1 execution test +FAIL: gcc.c-torture/execute/pr56866.c -O2 execution test +FAIL: gcc.c-torture/execute/pr56866.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/pr56866.c -O3 -g execution test +FAIL: gcc.c-torture/execute/pr56866.c -Os execution test +FAIL: gcc.c-torture/execute/pr56866.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/pr56866.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.c-torture/execute/pr82210.c -O0 execution test +FAIL: gcc.c-torture/execute/pr82210.c -O1 execution test +FAIL: gcc.c-torture/execute/pr82210.c -O2 execution test +FAIL: gcc.c-torture/execute/pr82210.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/pr82210.c -O3 -g execution test +FAIL: gcc.c-torture/execute/pr82210.c -Os execution test +FAIL: gcc.c-torture/execute/pr82210.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/pr82210.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O3 -g execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.c-torture/execute/va-arg-22.c -O2 execution test +FAIL: gcc.c-torture/execute/va-arg-22.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.c-torture/execute/va-arg-22.c -O3 -g execution test +FAIL: gcc.c-torture/execute/va-arg-22.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/va-arg-22.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: tmpdir-gcc.dg-struct-layout-1/t001 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t002 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t003 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t004 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t005 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t006 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t007 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t008 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t009 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t010 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t011 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t012 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t013 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t014 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t015 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t016 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t017 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t018 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t019 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t020 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t021 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t022 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t023 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t024 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t025 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t027 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: tmpdir-gcc.dg-struct-layout-1/t028 c_compat_x_tst.o-c_compat_y_tst.o execute +FAIL: gcc.dg/pr10392-1.c execution test +FAIL: gcc.dg/strcmp-1.c execution test +FAIL: gcc.dg/strlenopt-21.c execution test +FAIL: gcc.dg/strlenopt-84.c execution test +FAIL: gcc.dg/strncmp-1.c execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-16.c -O0 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-5.c -O0 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-16.c -O0 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-5.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-double.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-float.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-float32.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-float32x.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-float64.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O0 execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O1 execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O2 execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O3 -g execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -Os execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/fp-int-convert-long-double.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/pr100499-1.c -O1 execution test +FAIL: gcc.dg/torture/pr100499-1.c -O2 execution test +FAIL: gcc.dg/torture/pr100499-1.c -O3 -g execution test +FAIL: gcc.dg/torture/pr100499-1.c -Os execution test +FAIL: gcc.dg/torture/pr100499-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/pr100499-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/pr45764.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.dg/torture/pr45764.c -O3 -g execution test +FAIL: gcc.dg/torture/pr61346.c -O2 execution test +FAIL: gcc.dg/torture/pr61346.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.dg/torture/pr61346.c -O3 -g execution test +FAIL: gcc.dg/torture/pr61346.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/pr61346.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/pr70542.c -O0 execution test +FAIL: gcc.dg/torture/pr70542.c -O1 execution test +FAIL: gcc.dg/torture/pr70542.c -O2 execution test +FAIL: gcc.dg/torture/pr70542.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test +FAIL: gcc.dg/torture/pr70542.c -O3 -g execution test +FAIL: gcc.dg/torture/pr70542.c -Os execution test +FAIL: gcc.dg/torture/pr70542.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/pr70542.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/pr77436.c -O0 execution test +FAIL: gcc.dg/torture/pr97812.c -O0 execution test +FAIL: gcc.dg/torture/pr97812.c -O1 execution test +FAIL: gcc.dg/torture/pr97812.c -O2 execution test +FAIL: gcc.dg/torture/pr97812.c -O3 -g execution test +FAIL: gcc.dg/torture/pr97812.c -Os execution test +FAIL: gcc.dg/torture/pr97812.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.dg/torture/pr97812.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/tree-ssa/pr84969.c execution test and some more in the gfortran testsuite. -- Thanks. -- Max