This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch to fix PR82353
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Vladimir Makarov <vmakarov at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>
- Date: Thu, 12 Oct 2017 13:38:19 +0200
- Subject: Re: patch to fix PR82353
- Authentication-results: sourceware.org; auth=none
Hello!
> The following patch fixes
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82353
>
> LRA did not update hard reg liveness on bb borders for hard regs which are part of insn patterns
> like CFLAGS reg. It was ok for inheritance in EBB which creates only moves and they usually
> have no embedded hard regs in the patterns. But LRA rematerialization needs this. So this patch
> implements such hard reg liveness updates.
>
> The patch was successfully bootstrapped and tested on x86-64.
>
> Committed as rev. 253656.
It looks that this patch caused libgo build bootstrap failure on
x86_64-linux-gnu:
../../../git/gcc/libgo/go/cmd/go/internal/load/pkg.go:377:1: error:
this is the insn:
(insn 1134 2835 2611 195 (parallel [
(set (reg:DI 492)
(const_int 0 [0]))
(set (reg/f:DI 1008 [orig:490 <retval> ] [490])
(plus:DI (ashift:DI (reg:DI 492)
(const_int 3 [0x3]))
(reg/f:DI 1008 [orig:490 <retval> ] [490])))
(set (reg/f:DI 1009 [880])
(plus:DI (ashift:DI (reg:DI 492)
(const_int 3 [0x3]))
(reg/f:DI 1009 [880])))
(set (mem:BLK (reg/f:DI 1008 [orig:490 <retval> ] [490])
[22 *_372+0 S1048 A64])
(mem/c:BLK (reg/f:DI 1009 [880]) [22 GOTMP.492+0 S1048 A128]))
(use (reg:DI 492))
]) "../../../git/gcc/libgo/go/cmd/go/internal/load/pkg.go":679
930 {*rep_movdi_rex64}
(expr_list:REG_UNUSED (reg/f:DI 1009 [880])
(expr_list:REG_UNUSED (reg/f:DI 1008 [orig:490 <retval> ] [490])
(expr_list:REG_UNUSED (reg:DI 492)
(expr_list:REG_EH_REGION (const_int 1 [0x1])
(nil))))))
during RTL pass: reload
../../../git/gcc/libgo/go/cmd/go/internal/load/pkg.go:377:1: internal
compiler error: in assign_by_spills, at lra-assigns.c:1468
0x6b2709 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
../../git/gcc/gcc/rtl-error.c:108
0xbe87fa assign_by_spills
../../git/gcc/gcc/lra-assigns.c:1468
0xbe94a6 lra_assign()
../../git/gcc/gcc/lra-assigns.c:1662
0xbe48d4 lra(_IO_FILE*)
../../git/gcc/gcc/lra.c:2450
0xb9ec51 do_reload
../../git/gcc/gcc/ira.c:5440
0xb9ec51 execute
../../git/gcc/gcc/ira.c:5624
Please submit a full bug report,
Uros.