public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Jambor <mjambor@suse.cz>
To: Erick Ochoa <eochoa@gcc.gnu.org>
Cc: gcc@gcc.gnu.org
Subject: Re: Question on updating function body on specialized functions
Date: Tue, 08 Mar 2022 15:51:34 +0100	[thread overview]
Message-ID: <ri65yoopkeh.fsf@suse.cz> (raw)
In-Reply-To: <CAJ_nqzgjpf_s97TUAMp84jpGJsZuxJiydC_hY2-55yWi1wZB6A@mail.gmail.com>

Hi Erik,

On Tue, Mar 08 2022, Erick Ochoa via Gcc wrote:
> Hi,
>
> I have one function (F) that has been specialized for two different calling
> contexts (F1 and F2) and two late SIMPLE_IPA_PASSes (A and B). Pass A
> changes some MEM_REFs such that the type of MEM_REF is compatible with the
> type of the first operand of the expression. Pass A changes both F1 and F2.
> I have printed the function bodies of both F1 and F2 during Pass A and
> everything looks correct. Pass B uses these changes.
>
> However I noticed this interesting behaviour:
>
> 1. If I fix F1 first and then F2, then pass B will see F2 correctly but
> some of F1 MEM_REFs will be incorrect.
> 2. If I fix F2 first and then F1, then pass B will see F1 correctly but
> some of F2 MEM_REFs will be incorrect.
>

I try to avoid SIMPLE_IPA_PASSes and so would have to look how exactly
they fit into the big picture.  Also, I am not sure what you mean by
"incorrect" above (modified when you'd not have expected it to be)?

> My question is do different specialized functions share the same trees? How
> would I then change the bodies of specialized functions?

Virtual clones are, until they are "materialized."  But it a simple IPA
pass it does not really make sense to create virtual clones, does it?
Do you create your clones with create_version_clone_with_body?

Martin


  reply	other threads:[~2022-03-08 14:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-08 13:53 Erick Ochoa
2022-03-08 14:51 ` Martin Jambor [this message]
2022-03-08 15:29   ` Erick Ochoa
2022-03-08 22:11     ` Gary Oblock
2022-03-09  8:36     ` Richard Biener

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=ri65yoopkeh.fsf@suse.cz \
    --to=mjambor@suse.cz \
    --cc=eochoa@gcc.gnu.org \
    --cc=gcc@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).