On Sun, Jun 22, 2025 at 5:41 AM Max Filippov <jcmvb...@gmail.com> wrote: > > On Sat, Jun 21, 2025 at 2:12 PM Takayuki 'January June' Suwa > <jjsuwa_sys3...@yahoo.co.jp> wrote: > > > > That hook has since been deprecated > > (commit a670ebde3995481225ec62b29686ec07a21e5c10) and has led to incorrect > > results on Xtensa: > > > > /* example */ > > #define <stdint.h> > > uint32_t __attribute__((noinline)) test0(uint32_t a, uint16_t b) { > > return a + b; > > } > > uint32_t __attribute__((noinline)) test1(uint32_t a, uint32_t b) { > > return test0(a, b); > > } > > > > ;; before (-mabi=call0) > > test0: > > add.n a2, a3, a2 > > ret.n > > test1: > > sext a3, a3, 15 ;; NG, do not sign-extend > > j.l test0, a9 > > > > ;; after (-mabi=call0) > > test0: > > extui a3, a3, 0, 16 ;; OK > > add.n a2, a3, a2 > > ret.n > > test1: > > j.l test0, a9 > > > > With this patch, the result is consistent with other targets such as > > AArch64. > > > > gcc/ChangeLog: > > > > * config/xtensa/xtensa.cc > > (TARGET_PROMOTE_PROTOTYPES, TARGET_PROMOTE_FUNCTION_MODE): > > Remove. > > --- > > gcc/config/xtensa/xtensa.cc | 5 ----- > > 1 file changed, 5 deletions(-) > > This results in a bunch of ICEs with the following backtrace: > > libstdc++-v3/src/filesystem/ops.cc:780:29: internal compiler error: in > expand_call, at calls.cc:3930 > 780 | return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec); > | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 0x1fb63ff internal_error(char const*, ...) > gcc/diagnostic-global-context.cc:517 > 0x969aa8 fancy_abort(char const*, int, char const*) > gcc/diagnostic.cc:1803 > 0x76de1d expand_call(tree_node*, rtx_def*, int) > gcc/calls.cc:3930 > 0xe7dd2e expand_expr_real_1(tree_node*, rtx_def*, machine_mode, > expand_modifier, rtx_def**, bool) > gcc/expr.cc:12479 > 0xe89bf7 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier) > gcc/expr.h:323 > 0xe89bf7 store_expr(tree_node*, rtx_def*, int, bool, bool) > gcc/expr.cc:6645 > 0xe8b7df expand_assignment(tree_node*, tree_node*, bool) > gcc/expr.cc:6483 > 0xd50e9d expand_call_stmt > gcc/cfgexpand.cc:3149 > 0xd50e9d expand_gimple_stmt_1 > gcc/cfgexpand.cc:4223 > 0xd50e9d expand_gimple_stmt > gcc/cfgexpand.cc:4370 > 0xd51b95 expand_gimple_basic_block > gcc/cfgexpand.cc:6433 > 0xd53d26 execute > gcc/cfgexpand.cc:7181 > > -- > Thanks. > -- Max
Please open a bug report with a small preprocessed testcase and CC me. -- H.J.