public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa Date: Thu, 02 Feb 2023 14:53:52 +0000 [thread overview] Message-ID: <bug-108508-4-6FFlFPCNwd@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-108508-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108508 --- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>: https://gcc.gnu.org/g:f4e1b46618ef3bd7933992ab79f663ab9112bb80 commit r13-5657-gf4e1b46618ef3bd7933992ab79f663ab9112bb80 Author: Richard Sandiford <richard.sandiford@arm.com> Date: Thu Feb 2 14:53:34 2023 +0000 rtl-ssa: Fix splitting of clobber groups [PR108508] Since rtl-ssa isn't a real/native SSA representation, it has to honour the constraints of the underlying rtl representation. Part of this involves maintaining an rpo list of definitions for each rtl register, backed by a splay tree where necessary for quick lookup/insertion. However, clobbers of a register don't act as barriers to other clobbers of a register. E.g. it's possible to move one flag-clobbering instruction across an arbitrary number of other flag-clobbering instructions. In order to allow passes to do that without quadratic complexity, the splay tree groups all consecutive clobbers into groups, with only the group being entered into the splay tree. These groups in turn have an internal splay tree of clobbers where necessary. This means that, if we insert a new definition and use into the middle of a sea of clobbers, we need to split the clobber group into two groups. This was quite a difficult condition to trigger during development, and the PR shows that the code to handle it had (at least) two bugs. First, the process involves searching the clobber tree for the split point. This search can give either the previous clobber (which will belong to the first of the split groups) or the next clobber (which will belong to the second of the split groups). The code for the former case handled the split correctly but the code for the latter case didn't. Second, I'd forgotten to add the second clobber group to the main splay tree. :-( gcc/ PR rtl-optimization/108508 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When the splay tree search gives the first clobber in the second group, make sure that the root of the first clobber group is updated correctly. Enter the new clobber group into the definition splay tree. gcc/testsuite/ PR rtl-optimization/108508 * gcc.target/aarch64/pr108508.c: New test.
next prev parent reply other threads:[~2023-02-02 14:53 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-24 4:38 [Bug rtl-optimization/108508] New: [13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 asolokha at gmx dot com 2023-01-24 9:20 ` [Bug rtl-optimization/108508] " rguenth at gcc dot gnu.org 2023-01-25 9:34 ` [Bug rtl-optimization/108508] [12/13 Regression] ICE in insert_def_after, at rtl-ssa/accesses.cc:622 since r12-4759-g95bb87b2458bfa marxin at gcc dot gnu.org 2023-02-01 12:34 ` jakub at gcc dot gnu.org 2023-02-01 16:43 ` rsandifo at gcc dot gnu.org 2023-02-02 14:53 ` cvs-commit at gcc dot gnu.org [this message] 2023-04-03 8:57 ` [Bug rtl-optimization/108508] [12 " cvs-commit at gcc dot gnu.org 2023-04-03 9:02 ` [Bug rtl-optimization/108508] [11 Backport] " rsandifo at gcc dot gnu.org 2023-04-26 6:57 ` rguenth at gcc dot gnu.org 2023-07-27 9:25 ` rguenth at gcc dot gnu.org 2024-05-21 9:13 ` jakub 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-108508-4-6FFlFPCNwd@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: linkBe 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).