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 c++/106654] [C++23] P1774 - Portable assumptions Date: Fri, 07 Oct 2022 14:20:14 +0000 [thread overview] Message-ID: <bug-106654-4-UneNVk09eV@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-106654-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106654 --- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 53675 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53675&action=edit gcc13-pr106654-gimple-wip.patch My current WIP patch for the handling of more complex assumptions. My current testcase is for -O2: int foo (int x) { [[assume (x == 42)]]; return x; } int bar (int x) { [[assume (++x == 43)]]; return x; } int baz (int x) { [[assume (({ int z = ++x; if (z == 51) return -1; if (z == 53) goto lab1; z == 43; }))]]; lab1: return x; } Before IPA, that is roughly how I'd like it to look like. What still needs to be done is: 1) mark the assumption functions somehow and arrange for not being actually expanded into RTL, just the bodies kept around for optimization of other functions 2) for LTO ideally ensure they are duplicated in every partition that refers to them 3) teach ranger to get something useful ouf ot it 4) perhaps for later, decide what to do e.g. for SRA, so that passing an argument by value to .ASSUME doesn't prevent its SRA optimization 5) guess see if one can somehow bypass fab pass (-fdisable-tree-fab doesn't seem to work) and if yes, don't ICE if .ASSUME call makes it down to expansion, instead fold it away right before or during expansion such that args don't need to be evaluated) Anyway, I must be doing something wrong, because on the above testcase I get ICE in: during RTL pass: expand a.C: In function ‘_Z3bari._assume.0’: a.C:11:3: internal compiler error: in adjust_one_expanded_partition_var, at cfgexpand.cc:1577 11 | [[assume (++x == 43)]]; | ^~~~~~~~~~~~~~~~~~~~~~ 0x99d1ba adjust_one_expanded_partition_var ../../gcc/cfgexpand.cc:1577 0x9af44c execute ../../gcc/cfgexpand.cc:6737 where the name in question is default def for the argument - x_1(D): bool _Z3bari._assume.0 (int x) { bool _2; <bb 2> [local count: 1073741824]: _2 = x_1(D) == 42; return _2; }
next prev parent reply other threads:[~2022-10-07 14:20 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-08-16 17:20 [Bug c++/106654] New: " mpolacek at gcc dot gnu.org 2022-09-14 9:52 ` [Bug c++/106654] " jakub at gcc dot gnu.org 2022-09-14 11:23 ` rguenth at gcc dot gnu.org 2022-09-14 11:26 ` rguenth at gcc dot gnu.org 2022-09-14 11:54 ` jakub at gcc dot gnu.org 2022-09-16 9:20 ` pilarlatiesa at gmail dot com 2022-09-16 16:48 ` jakub at gcc dot gnu.org 2022-09-17 11:34 ` aldyh at gcc dot gnu.org 2022-09-17 12:09 ` jason at gcc dot gnu.org 2022-09-17 12:12 ` aldyh at gcc dot gnu.org 2022-09-17 12:29 ` jason at gcc dot gnu.org 2022-09-17 18:32 ` aldyh at gcc dot gnu.org 2022-09-21 17:49 ` jakub at gcc dot gnu.org 2022-10-06 7:01 ` cvs-commit at gcc dot gnu.org 2022-10-07 14:20 ` jakub at gcc dot gnu.org [this message] 2022-10-08 10:45 ` jakub at gcc dot gnu.org 2022-10-18 8:40 ` cvs-commit at gcc dot gnu.org 2022-10-20 0:37 ` cvs-commit at gcc dot gnu.org 2022-10-20 19:43 ` cvs-commit at gcc dot gnu.org 2022-11-19 9:24 ` jakub at gcc dot gnu.org 2022-11-28 22:32 ` 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-106654-4-UneNVk09eV@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).