public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "macro at orcam dot me.uk" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug middle-end/103059] New: [10 regression][VAX] ICE in postreload with the ASHIFT form of scaled indexed addressing
Date: Wed, 03 Nov 2021 13:51:00 +0000	[thread overview]
Message-ID: <bug-103059-4@http.gcc.gnu.org/bugzilla/> (raw)

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103059

            Bug ID: 103059
           Summary: [10 regression][VAX] ICE in postreload with the ASHIFT
                    form of scaled indexed addressing
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: macro at orcam dot me.uk
          Reporter: macro at orcam dot me.uk
  Target Milestone: ---
            Target: vax-netbsdelf

We have a `vax-netbsdelf' target regression ultimately caused by commit
c605a8bf9270 ("VAX: Accept ASHIFT in address expressions") (needed for
LRA) and as of commit 4a960d548b7d ("Avoid invalid loop transformations
in jump threading registry.") causing a build error in libgcc:

.../libgcc/libgcov-driver.c: In function 'gcov_do_dump':
.../libgcc/libgcov-driver.c:686:1: error: insn does not satisfy its
constraints:
  686 | }
      | ^
(insn 2051 2050 2052 185 (set (reg/f:SI 0 %r0 [555])
        (plus:SI (ashift:SI (mem/c:SI (plus:SI (reg/f:SI 13 %fp)
                        (const_int -28 [0xffffffffffffffe4])) [40 %sfp+-28 S4
A32])
                (const_int 3 [0x3]))
            (plus:SI (reg/v/f:SI 9 %r9 [orig:176 fn_buffer ] [176])
                (const_int 24 [0x18])))) ".../libgcc/libgcov-driver.c":172:40
614 {movaddrdi}
     (nil))
during RTL pass: postreload
.../libgcc/libgcov-driver.c:686:1: internal compiler error: in
extract_constrain_insn, at recog.c:2670
0x1122a5ff _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        .../gcc/rtl-error.c:108
0x1122a697 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        .../gcc/rtl-error.c:118
0x111b5f2f extract_constrain_insn(rtx_insn*)
        .../gcc/recog.c:2670
0x11143eef reload_cse_simplify_operands
        .../gcc/postreload.c:407
0x11142fdb reload_cse_simplify
        .../gcc/postreload.c:132
0x11143533 reload_cse_regs_1
        .../gcc/postreload.c:238
0x11142ce7 reload_cse_regs
        .../gcc/postreload.c:66
0x1114af33 execute
        .../gcc/postreload.c:2355
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

This is because reload does not recognize the ASHIFT form of scaled 
indexed addressing that the offending commit enabled the backend to 
produce, and as seen in the RTL above lets the pseudo holding the 
index part become the original memory reference rather than reloading it 
into a hard register.

Cf. <https://gcc.gnu.org/pipermail/gcc-patches/2021-March/567256.html>, 
and commit 6b3034eaba83 ("lra: Canonicalize mult to shift in address 
reloads").

Bug filed for tracking purposes, posting a fix right away.

             reply	other threads:[~2021-11-03 13:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-03 13:51 macro at orcam dot me.uk [this message]
2021-11-03 13:51 ` [Bug middle-end/103059] " macro at orcam dot me.uk
2021-11-05 13:33 ` [Bug middle-end/103059] [12 " rguenth at gcc dot gnu.org
2021-11-24 13:19 ` cvs-commit at gcc dot gnu.org
2021-11-24 13:37 ` cvs-commit at gcc dot gnu.org
2021-11-24 13:40 ` macro at orcam dot me.uk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-103059-4@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).