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 ipa/99122] [10/11 Regression] ICE in force_constant_size, at gimplify.c:733
Date: Wed, 24 Mar 2021 19:28:34 +0000	[thread overview]
Message-ID: <bug-99122-4-hnDAIgnWKm@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-99122-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #27 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamborm@gcc.gnu.org>:

https://gcc.gnu.org/g:f225c6b0c50dc472e0b73b440b572a3bf1514020

commit r11-7817-gf225c6b0c50dc472e0b73b440b572a3bf1514020
Author: Martin Jambor <mjambor@suse.cz>
Date:   Wed Mar 24 20:27:27 2021 +0100

    ipa: Check that scalar types that IPA-CP comes up with are sane (PR99122)

    This patch fixes the last bit of PR 99122 where various bits of IPA
    infrastructure are presented with a program with type mismatches that
    make it have undefined behavior, and when inlining or performing
    IPA-CP, and encountering such mismatch, we basically try to
    VIEW_CONVERT_EXPR whatever the caller has into whatever the callee has
    or simply use an empty constructor if that cannot be done.  This
    however does not work when the callee has VLA parameters because we
    ICE in the process.

    Richi has already disabled inlining for such cases, this patch avoids
    the issue in IPA-CP.  It adds checks that whatever constant the
    propagation arrived at is actually compatible or fold_convertible to
    the callees formal parameer type.  Unlike in the past, we now have
    types of all parameters of functions that we have analyzed, even with
    LTO, and so can do it.

    This should prevent only bogus propagations.  I have looked at the
    effect of the patch on WPA of Firefox and did not have any.

    I have bootstrapped and LTO bootstrapped and tested the patch on
    x86_64-linux.  OK for trunk?  And perhaps later for GCC 10 too?

    Thanks

    gcc/ChangeLog:

    2021-02-26  Martin Jambor  <mjambor@suse.cz>

            PR ipa/99122
            * ipa-cp.c (initialize_node_lattices): Mark as bottom all
            parameters with unknown type.
            (ipacp_value_safe_for_type): New function.
            (propagate_vals_across_arith_jfunc): Verify that the constant type
            can be used for a type of the formal parameter.
            (propagate_vals_across_ancestor): Likewise.
            (propagate_scalar_across_jump_function): Likewise.  Pass the type
            also to propagate_vals_across_ancestor.

    gcc/testsuite/ChangeLog:

    2021-02-26  Martin Jambor  <mjambor@suse.cz>

            PR ipa/99122
            * gcc.dg/pr99122-3.c: Remove -fno-ipa-cp from options.

  parent reply	other threads:[~2021-03-24 19:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-16 17:38 [Bug c/99122] New: " gscfq@t-online.de
2021-02-16 18:24 ` [Bug ipa/99122] " jakub at gcc dot gnu.org
2021-02-17 16:38 ` jakub at gcc dot gnu.org
2021-02-17 17:03 ` jamborm at gcc dot gnu.org
2021-02-17 17:10 ` jamborm at gcc dot gnu.org
2021-02-17 17:15 ` jakub at gcc dot gnu.org
2021-02-17 17:52 ` jamborm at gcc dot gnu.org
2021-02-17 17:57 ` jakub at gcc dot gnu.org
2021-02-18  9:09 ` rguenth at gcc dot gnu.org
2021-02-18 11:20 ` rguenth at gcc dot gnu.org
2021-02-18 11:26 ` rguenth at gcc dot gnu.org
2021-02-18 11:27 ` jakub at gcc dot gnu.org
2021-02-18 12:00 ` jakub at gcc dot gnu.org
2021-02-18 12:24 ` jamborm at gcc dot gnu.org
2021-02-18 12:42 ` jamborm at gcc dot gnu.org
2021-02-18 13:38 ` cvs-commit at gcc dot gnu.org
2021-02-18 18:13 ` jamborm at gcc dot gnu.org
2021-02-19  8:37 ` rguenth at gcc dot gnu.org
2021-02-19  8:42 ` rguenth at gcc dot gnu.org
2021-02-19 10:31 ` jamborm at gcc dot gnu.org
2021-02-19 10:40 ` jakub at gcc dot gnu.org
2021-02-19 10:54 ` rguenther at suse dot de
2021-02-19 13:20 ` cvs-commit at gcc dot gnu.org
2021-02-25 13:01 ` rguenth at gcc dot gnu.org
2021-03-04 14:22 ` jamborm at gcc dot gnu.org
2021-03-05 14:28 ` jamborm at gcc dot gnu.org
2021-03-06 10:54 ` dcb314 at hotmail dot com
2021-03-24 19:28 ` cvs-commit at gcc dot gnu.org [this message]
2021-03-29 16:31 ` jakub at gcc dot gnu.org
2021-03-29 16:43 ` jamborm at gcc dot gnu.org
2021-04-08 12:02 ` [Bug ipa/99122] [10 " rguenth at gcc dot gnu.org
2021-06-02 11:27 ` ebotcazou at gcc dot gnu.org
2021-06-02 11:44 ` rguenth at gcc dot gnu.org
2021-06-02 12:25 ` ebotcazou at gcc dot gnu.org
2021-06-02 12:42 ` rguenth at gcc dot gnu.org
2021-06-02 13:03 ` ebotcazou at gcc dot gnu.org
2021-06-03 10:46 ` cvs-commit at gcc dot gnu.org
2021-06-03 10:49 ` cvs-commit at gcc dot gnu.org
2022-06-28 10:43 ` jakub at gcc dot gnu.org
2023-07-07  9:27 ` rguenth 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-99122-4-hnDAIgnWKm@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).