Hi Suwa-san, On Tue, Mar 7, 2023 at 10:04 PM Takayuki 'January June' Suwa <jjsuwa_sys3...@yahoo.co.jp> wrote: > > This patch makes LRA well with some exceptions > (e.g. MI thunk generation due to pretending reload_completed). > > gcc/ChangeLog: > > * config/xtensa/constraints.md (R, T, U): > Change define_constraint to define_memory_constraint. > * config/xtensa/xtensa.cc (xtensa_legitimate_constant_p): > Add short-circuit path for integer load instructions when > lra_in_progress. > * config/xtensa/xtensa.md (movsf): > Use can_create_pseudo_p() rather reload_in_progress and > reload_completed. > --- > gcc/config/xtensa/constraints.md | 26 ++++++++------------------ > gcc/config/xtensa/xtensa.cc | 4 ++++ > gcc/config/xtensa/xtensa.md | 2 +- > 3 files changed, 13 insertions(+), 19 deletions(-)
this change introduces the following build- and runtime regressions when tested without -mlra: +FAIL: gcc.c-torture/execute/builtins/sprintf.c execution, -O1 +FAIL: gcc.c-torture/execute/builtins/sprintf.c execution, -Og -g +FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c execution, -O1 +FAIL: gcc.c-torture/execute/builtins/vsprintf-chk.c execution, -O1 +FAIL: gcc.c-torture/execute/stdarg-1.c -O2 execution test +FAIL: gcc.c-torture/execute/stdarg-1.c -O3 -g execution test +FAIL: gcc.c-torture/execute/stdarg-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 (internal compiler error: in xtensa_output_integer_literal_parts, at config/xtensa/xtensa.cc:3201) +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error: in xtensa_output_integer_literal_parts, at config/xtensa/xtensa.cc:3201) +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O3 -g (internal compiler error: in xtensa_output_integer_literal_parts, at config/xtensa/xtensa.cc:3201) +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (internal compiler error: in xtensa_output_integer_literal_parts, at config/xtensa/xtensa.cc:3201) +FAIL: gcc.c-torture/execute/strct-stdarg-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (internal compiler error: in xtensa_output_integer_literal_parts, at config/xtensa/xtensa.cc:3201) +FAIL: gcc.c-torture/execute/va-arg-pack-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/atomic/c11-atomic-exec-4.c -O1 execution test +FAIL: gcc.dg/strcmpopt_6.c execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-14.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-14.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-3.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-3.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-14.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-14.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-shufflevector-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/torture/vec-cvt-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test +FAIL: gcc.dg/tree-ssa/forwprop-39.c (test for excess errors) +FAIL: gcc.dg/tree-ssa/forwprop-39.c scan-tree-dump-not forwprop1 "COMPLEX_EXPR" +FAIL: gcc.dg/tree-ssa/forwprop-39.c scan-tree-dump-not optimized "REALPART_EXPR" +FAIL: c-c++-common/torture/builtin-arith-overflow-14.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-14.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-3.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-3.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-14.c -O2 execution test +FAIL: c-c++-common/torture/builtin-arith-overflow-p-14.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test +FAIL: c-c++-common/torture/builtin-shufflevector-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test -- Thanks. -- Max