Message ID | bdf06990-a0fe-1bed-46db-44ff92f3a986@redhat.com |
---|---|
State | New |
Headers | show |
Series | [pushed] LRA]: Fix asserts for output stack pointer reloads | expand |
On Mon, 14 Aug 2023 at 06:39, Vladimir Makarov via Gcc-patches <gcc-patches@gcc.gnu.org> 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
On 8/14/23 14:37, Prathamesh Kulkarni wrote: > On Mon, 14 Aug 2023 at 06:39, Vladimir Makarov via Gcc-patches > <gcc-patches@gcc.gnu.org> 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
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; }