public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/98603] aarch64: ICE in extract_insn (ira) on asm goto with bad constraint
Date: Fri, 08 Jan 2021 14:19:53 +0000	[thread overview]
Message-ID: <bug-98603-4-Fgk9faJIcU@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-98603-4@http.gcc.gnu.org/bugzilla/>

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |vmakarov at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The bug is function.c (instantiate_virtual_regs_in_insn):
      if (!check_asm_operands (PATTERN (insn)))
        {
          error_for_asm (insn, "impossible constraint in %<asm%>");
          /* For asm goto, instead of fixing up all the edges
             just clear the template and clear input operands
             (asm goto doesn't have any output operands).  */
          if (JUMP_P (insn))
            {
              rtx asm_op = extract_asm_operands (PATTERN (insn));
              ASM_OPERANDS_TEMPLATE (asm_op) = ggc_strdup ("");
              ASM_OPERANDS_INPUT_VEC (asm_op) = rtvec_alloc (0);
              ASM_OPERANDS_INPUT_CONSTRAINT_VEC (asm_op) = rtvec_alloc (0);
            }
          else
            delete_insn (insn);
        }
As the comment documents, that was correct before support for outputs in asm
goto has been added, but for asm insn with outputs, there are multiple
problems.
One is that extract_asm_operands extracts just one of the ASM_OPERANDS, but
with multiple outputs there can be several, and those need to be handled in
sync.
And the other is that we still keep the incorrectly constrained outputs if any
in the IL.

  reply	other threads:[~2021-01-08 14:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-08 13:54 [Bug rtl-optimization/98603] New: " acoplan at gcc dot gnu.org
2021-01-08 14:19 ` jakub at gcc dot gnu.org [this message]
2021-01-08 14:40 ` [Bug rtl-optimization/98603] " jakub at gcc dot gnu.org
2021-01-09  9:49 ` cvs-commit at gcc dot gnu.org
2021-01-09  9:53 ` jakub at gcc dot gnu.org
2022-10-27  7:55 ` linkw at gcc dot gnu.org
2022-10-27 14:42 ` pinskia at gcc dot gnu.org

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-98603-4-Fgk9faJIcU@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).