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 target/111815] New: VAX: ICE in 'print_operand_address' while building 'elf_zstd_decompress' from libbacktrace/elf.c
Date: Sat, 14 Oct 2023 23:47:48 +0000	[thread overview]
Message-ID: <bug-111815-4@http.gcc.gnu.org/bugzilla/> (raw)

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

            Bug ID: 111815
           Summary: VAX: ICE in 'print_operand_address' while building
                    'elf_zstd_decompress' from libbacktrace/elf.c
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: blocker
          Priority: P3
         Component: target
          Assignee: macro at orcam dot me.uk
          Reporter: macro at orcam dot me.uk
  Target Milestone: ---
            Target: vax-*-*

Created attachment 56113
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56113&action=edit
VAX: Only accept the index scaler as the RHS operand to ASHIFT

As from commit 9df1ba9a35b8 ("libbacktrace: support zstd decompression")
GCC for the `vax-netbsdelf' target fails to complete building, with an
ICE:

during RTL pass: final
.../libbacktrace/elf.c: In function 'elf_zstd_decompress':
.../libbacktrace/elf.c:5006:1: internal compiler error: in
print_operand_address, at config/vax/vax.cc:514
 5006 | }
      | ^
0x1113df97 print_operand_address(_IO_FILE*, rtx_def*)
        .../gcc/config/vax/vax.cc:514
0x10c2489b default_print_operand_address(_IO_FILE*, machine_mode, rtx_def*)
        .../gcc/targhooks.cc:373
0x106ddd0b output_address(machine_mode, rtx_def*)
        .../gcc/final.cc:3648
0x106ddd0b output_asm_insn(char const*, rtx_def**)
        .../gcc/final.cc:3505
0x106e2143 output_asm_insn(char const*, rtx_def**)
        .../gcc/final.cc:3421
0x106e2143 final_scan_insn_1
        .../gcc/final.cc:2841
0x106e28e3 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
        .../gcc/final.cc:2887
0x106e2bf7 final_1
        .../gcc/final.cc:1979
0x106e3c67 rest_of_handle_final
        .../gcc/final.cc:4240
0x106e3c67 execute
        .../gcc/final.cc:4318
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

This is due to combine producing an invalid address RTX:

(plus:SI (ashift:SI (const_int 1 [0x1])
        (reg:QI 3 %r3 [1232]))
    (reg/v:SI 10 %r10 [orig:736 weight_mask ] [736]))

where the expression is ((1 << R3) + R10), which does not match a valid
machine address mode.  Consequently `print_operand_address' chokes.

The ultimate cause has been commit c605a8bf9270 ("VAX: Accept ASHIFT in
address expressions"), where a shift of an immediate value by a register
has been mistakenly allowed as an index expression as if the shift
operation was commutative such as multiplication is.  So with ASHIFT
the scaler in an index expression has to be the right-hand operand, and
the backend has to enforce that, whereas with MULT the scaler can be
either operand.

             reply	other threads:[~2023-10-14 23:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-14 23:47 macro at orcam dot me.uk [this message]
2023-10-15  1:31 ` [Bug target/111815] " macro at orcam dot me.uk
2023-10-15 23:48 ` macro at orcam dot me.uk
2023-11-22  1:28 ` cvs-commit at gcc dot gnu.org
2023-11-22  1:34 ` cvs-commit at gcc dot gnu.org
2023-11-22  2:16 ` cvs-commit at gcc dot gnu.org
2023-11-22  2:25 ` cvs-commit at gcc dot gnu.org
2023-11-22  2:31 ` 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-111815-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).