Re: [pushed]LRA]: Fix asserts for output stack pointer reloads
On 8/14/23 14:37, Prathamesh Kulkarni wrote: On Mon, 14 Aug 2023 at 06:39, Vladimir Makarov via Gcc-patches wrote: The following patch fixes useless asserts in my latest patch implementing output stack pointer reloads. Hi Vladimir, It seems that this patch caused the following ICE on aarch64-linux-gnu while building cp-demangle.c: compile: /home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/./gcc/xgcc -B/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/./gcc/ -B/usr/local/aarch64-unknown-linux-gnu/bin/ -B/usr/local/aarch64-unknown-linux-gnu/lib/ -isystem /usr/local/aarch64-unknown-linux-gnu/include -isystem /usr/local/aarch64-unknown-linux-gnu/sys-include -DHAVE_CONFIG_H -I.. -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/../libiberty -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/../include -D_GLIBCXX_SHARED -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/aarch64-unknown-linux-gnu/libstdc++-v3/include/aarch64-unknown-linux-gnu -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/aarch64-unknown-linux-gnu/libstdc++-v3/include -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/libsupc++ -g -O2 -DIN_GLIBCPP_V3 -Wno-error -c cp-demangle.c -fPIC -DPIC -o cp-demangle.o during RTL pass: reload cp-demangle.c: In function ‘d_demangle_callback.constprop’: cp-demangle.c:6815:1: internal compiler error: in curr_insn_transform, at lra-constraints.cc:4854 6815 | } | ^ 0xce6b37 curr_insn_transform ../../gcc/gcc/lra-constraints.cc:4854 0xce7887 lra_constraints(bool) ../../gcc/gcc/lra-constraints.cc:5478 0xccdfa7 lra(_IO_FILE*) ../../gcc/gcc/lra.cc:2419 0xc7e417 do_reload ../../gcc/gcc/ira.cc:5970 0xc7e417 execute ../../gcc/gcc/ira.cc:6156 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. Sorry, I should have bootstrapped my patch on aarch64. The asserts actually seems very useful as I found they caught a bug in my previous patch. I'll push a patch fixing the problems after finishing bootstraps, probably in couple hours. Thank you
Re: [pushed]LRA]: Fix asserts for output stack pointer reloads
On Mon, 14 Aug 2023 at 06:39, Vladimir Makarov via Gcc-patches wrote: > > The following patch fixes useless asserts in my latest patch > implementing output stack pointer reloads. Hi Vladimir, It seems that this patch caused the following ICE on aarch64-linux-gnu while building cp-demangle.c: compile: /home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/./gcc/xgcc -B/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/./gcc/ -B/usr/local/aarch64-unknown-linux-gnu/bin/ -B/usr/local/aarch64-unknown-linux-gnu/lib/ -isystem /usr/local/aarch64-unknown-linux-gnu/include -isystem /usr/local/aarch64-unknown-linux-gnu/sys-include -DHAVE_CONFIG_H -I.. -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/../libiberty -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/../include -D_GLIBCXX_SHARED -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/aarch64-unknown-linux-gnu/libstdc++-v3/include/aarch64-unknown-linux-gnu -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/stage1-build/aarch64-unknown-linux-gnu/libstdc++-v3/include -I/home/prathamesh.kulkarni/gnu-toolchain/gcc/master/gcc/libstdc++-v3/libsupc++ -g -O2 -DIN_GLIBCPP_V3 -Wno-error -c cp-demangle.c -fPIC -DPIC -o cp-demangle.o during RTL pass: reload cp-demangle.c: In function ‘d_demangle_callback.constprop’: cp-demangle.c:6815:1: internal compiler error: in curr_insn_transform, at lra-constraints.cc:4854 6815 | } | ^ 0xce6b37 curr_insn_transform ../../gcc/gcc/lra-constraints.cc:4854 0xce7887 lra_constraints(bool) ../../gcc/gcc/lra-constraints.cc:5478 0xccdfa7 lra(_IO_FILE*) ../../gcc/gcc/lra.cc:2419 0xc7e417 do_reload ../../gcc/gcc/ira.cc:5970 0xc7e417 execute ../../gcc/gcc/ira.cc:6156 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. Thanks, Prathamesh
[pushed]LRA]: Fix asserts for output stack pointer reloads
The following patch fixes useless asserts in my latest patch implementing output stack pointer reloads. commit 18b417fe1a46d37738243267c1f559cd0acc4886 Author: Vladimir N. Makarov Date: Sun Aug 13 20:54:58 2023 -0400 [LRA]: Fix asserts for output stack pointer reloads The patch implementing output stack pointer reloads contained superfluous asserts. The patch makes them useful. gcc/ChangeLog: * lra-constraints.cc (curr_insn_transform): Set done_p up and check it on true after processing output stack pointer reload. diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc index 26239908747..8d9443adeb6 100644 --- a/gcc/lra-constraints.cc +++ b/gcc/lra-constraints.cc @@ -4852,6 +4852,7 @@ curr_insn_transform (bool check_only_p) && SET_DEST (set) == stack_pointer_rtx) { lra_assert (!done_p); + done_p = true; curr_id->sp_offset = 0; lra_insn_recog_data_t id = lra_get_insn_recog_data (insn); id->sp_offset = sp_offset; @@ -4860,7 +4861,7 @@ curr_insn_transform (bool check_only_p) "Moving sp offset from insn %u to %u\n", INSN_UID (curr_insn), INSN_UID (insn)); } - lra_assert (!done_p); + lra_assert (done_p); } return change_p; }