public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "roger at nextmovesoftware dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/106933] [13 Regression] ICE in extract_insn, at recog.cc:2791 (error: unrecognizable insn) since r13-2049-g6f94923dea21bd92
Date: Wed, 14 Sep 2022 12:35:30 +0000	[thread overview]
Message-ID: <bug-106933-4-R8TD6kmsmT@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-106933-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #3 from Roger Sayle <roger at nextmovesoftware dot com> ---
Ignore all of Comment 2.  The reason the instruction isn't getting split, is
that (unlike the other clones), the pseudo's mode is V1TI (not TI), hence
doesn't match the <DWI> constraint.  The problem is STV (again), where uses of
a pseudo are split into different chains, and some chains are considered
profitable, and other chains aren't supported in V1TImode.

Searching for mode conversion candidates...
  insn 13 is marked as a TImode candidate
  insn 16 is marked as a TImode candidate
Created a new instruction chain #7
Building chain #7...
  Adding insn 13 to chain #7
Collected chain #7...
  insns: 13
Computing gain for chain #7...
  Instruction gain 4 for    13: [r91:DI]=r82:TI
      REG_DEAD r91:DI
  Total gain: 5
Converting chain #7...
deferring rescan insn with uid = 13.
Created a new instruction chain #8
Building chain #8...
  Adding insn 16 to chain #8
Collected chain #8...
  insns: 16
Computing gain for chain #8...
  Instruction gain -4 for    16: flags:CCZ=cmp(r82:V1TI,0x1)
      REG_DEAD r82:V1TI
  Total gain: -3
Chain #8 conversion is not profitable
Total insns converted: 1


The issue is that you can't convert insn 13 to V1TImode if you don't convert
insn 16, i.e. all uses of a pseudo should have the same mode.  [Calling
PUT_MODE on the first use, implicitly updates the second].  I believe (this
time) that the uninitialized value from "empty()" confuses that DF analysis,
and insns 13 and 16 end up on different (dependency) chains, because the lack
on initialization makes them look independent.

  parent reply	other threads:[~2022-09-14 12:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-13 18:49 [Bug target/106933] New: [13 Regression] ICE in extract_insn, at recog.cc:2791 (error: unrecognizable insn) asolokha at gmx dot com
2022-09-13 19:23 ` [Bug target/106933] [13 Regression] ICE in extract_insn, at recog.cc:2791 (error: unrecognizable insn) since r13-2049-g6f94923dea21bd92 marxin at gcc dot gnu.org
2022-09-14  6:25 ` rguenth at gcc dot gnu.org
2022-09-14 11:39 ` roger at nextmovesoftware dot com
2022-09-14 12:35 ` roger at nextmovesoftware dot com [this message]
2022-10-06 16:03 ` asolokha at gmx dot com
2022-10-06 17:18 ` hjl.tools at gmail dot com
2022-10-18  8:45 ` rguenth at gcc dot gnu.org
2022-10-21 18:53 ` hjl.tools at gmail dot com
2022-12-01 12:49 ` jakub at gcc dot gnu.org
2022-12-23  9:52 ` cvs-commit at gcc dot gnu.org
2022-12-24 17:16 ` roger at nextmovesoftware dot com

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-106933-4-R8TD6kmsmT@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).