public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Sriraman Tallam <tmsriram@google.com>
To: Richard Guenther <richard.guenther@gmail.com>
Cc: jason@redhat.com, mark@codesourcery.com, nathan@codesourcery.com,
		"H.J. Lu" <hjl.tools@gmail.com>, Jan Hubicka <jh@suse.cz>,
	Uros Bizjak <ubizjak@gmail.com>,
		reply@codereview.appspotmail.com, gcc-patches@gcc.gnu.org,
		David Li <davidxl@google.com>
Subject: Re: User directed Function Multiversioning via Function Overloading (issue5752064)
Date: Fri, 06 Jul 2012 17:38:00 -0000	[thread overview]
Message-ID: <CAAs8Hmw0UWXM-ARfynwk4fJh-rnbT2pCJzXhuNgZhNR585SFnw@mail.gmail.com> (raw)
In-Reply-To: <CAFiYyc3X787Oe158tJ8w6sWred2J+f-PPta6p-5T+HFq2c2tRw@mail.gmail.com>

On Fri, Jul 6, 2012 at 2:14 AM, Richard Guenther
<richard.guenther@gmail.com> wrote:
>
> On Thu, Jun 14, 2012 at 10:13 PM, Sriraman Tallam <tmsriram@google.com> wrote:
> > +cc c++ front-end maintainers
> >
> > Hi,
> >
> >    C++ Frontend maintainers, Could you please take a look at the
> > front-end part when you find the time?
>
> So you have (for now?) omitted the C frontend change(s)?

Yes, for now. I thought I will get the C++ changes and associated
middle-end checked in first. The C changes should be easy to add, I
have to introduce a new attribute for this. So, the C front-end should
look like this:

int foo (); // default version.
int foo_sse4() __attribute__ ((version("foo"), target("sse4.2"))); //
A version of foo.

and the call will be to foo.

The version attribute will be the new one, there may be an existing
attribute that I could use too for this purpose. I was thinking if the
"alias" attribute along with the "target" attribute could be used for
this purpose but it makes things unnecessarily complicated. What do
you think?

>
> >    Honza, your thoughts on the callgraph part?
> >
> >    Richard, any further comments/feedback?
>
> Overall I like it - the cgraph portions need comments from Honza and the
> C++ portions from a C++ maintainer though.
>
> I would appreciate a C version, too.

Sure, I will get to it immediately after the current patch reaches a
stable point.

>
> As you are tackling the C++ frontend first you should add some C++
> specific testcases - if only to verify you properly reject cases you do not
> or can not implement.  Like eventually

Sure, I will add these test cases.

Thanks for reviewing,
-Sri.

>
> class Foo {
>   virtual void bar() __attribute__((target("sse")));
>   virtual void bar() __attribute__((target("sse2")));
> };
>
> or
>
> template <class T>
> void bar (T t) __attribute__((target("sse")));
> template <class T>
> void bar (T t) __attribute__((target("sse2")));
> template <>
> void bar (int t);
>
> (how does regular C++ overload resolution / template specialization
> interfere with the target overloads?)
>
> Thanks,
> Richard.
>
> >    Additionally, I am working on generating better mangled names for
> > function versions, along the lines of C++ thunks.
> >
> > Thanks,
> > -Sri.
> >
> > On Mon, Jun 4, 2012 at 11:59 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> >> Hi,
> >>
> >>   Attaching updated patch for function multiversioning which brings
> >> in plenty of changes.
> >>
> >> * As suggested by Richard earlier, I have made cgraph aware of
> >> function versions. All nodes of function versions are chained and the
> >> dispatcher bodies are created on demand while building cgraph edges.
> >> The dispatcher body will be created if and only if there is a call or
> >> reference to a versioned function. Previously, I was maintaining the
> >> list of versions separately in a hash map, all that is gone now.
> >> * Now, the file multiverison.c has some helper routines that are used
> >> in the context of function versioning. There are no new passes and no
> >> new globals.
> >> * More tests, updated existing tests.
> >> * Fixed lots of bugs.
> >> * Updated patch description.
> >>
> >> Patch attached. Patch also available for review at
> >> http://codereview.appspot.com/5752064
> >>
> >> Please let me know what you think,
> >>
> >> Thanks,
> >> -Sri.
> >>
> >>
> >> On Mon, May 14, 2012 at 11:28 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> >>> Hi H.J,
> >>>
> >>>   Attaching new patch with 2 test cases, mv2.C checks ISAs only and
> >>> mv1.C checks ISAs and arches mixed. Right now, checking only arches is
> >>> not needed as they are mutually exclusive, any order should be fine.
> >>>
> >>> Patch also available for review here:  http://codereview.appspot.com/5752064
> >>>
> >>> Thanks,
> >>> -Sri.
> >>>
> >>> On Sat, May 12, 2012 at 6:37 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> >>>> On Fri, May 11, 2012 at 7:04 PM, Sriraman Tallam <tmsriram@google.com> wrote:
> >>>>> Hi H.J.,
> >>>>>
> >>>>>   I have updated the patch to improve the dispatching method like we
> >>>>> discussed. Each feature gets a priority now, and the dispatching is
> >>>>> done in priority order. Please see i386.c for the changes.
> >>>>>
> >>>>> Patch also available for review here:  http://codereview.appspot.com/5752064
> >>>>>
> >>>>
> >>>> I think you need 3 tests:
> >>>>
> >>>> 1.  Only with ISA.
> >>>> 2.  Only with arch
> >>>> 3.  Mixed with ISA and arch
> >>>>
> >>>> since test mixed ISA and arch may hide issues with ISA only or arch only.
> >>>>
> >>>> --
> >>>> H.J.

  reply	other threads:[~2012-07-06 17:38 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07  0:47 Sriraman Tallam
2012-03-07 14:05 ` Richard Guenther
2012-03-07 19:08   ` Sriraman Tallam
2012-03-08 21:37     ` Xinliang David Li
2012-03-08 21:00   ` Xinliang David Li
2012-03-09 20:04   ` Sriraman Tallam
2012-04-27  5:09     ` Sriraman Tallam
2012-04-27 13:39       ` H.J. Lu
2012-04-27 14:35         ` Sriraman Tallam
2012-04-27 14:39           ` H.J. Lu
2012-04-27 14:53             ` Sriraman Tallam
2012-04-27 15:36               ` H.J. Lu
2012-04-27 15:45                 ` Sriraman Tallam
2012-05-01 23:51                 ` Sriraman Tallam
2012-05-02  0:09                   ` H.J. Lu
2012-05-02  2:45                     ` Sriraman Tallam
2012-05-02 13:42                       ` H.J. Lu
2012-05-02 15:08                         ` Sriraman Tallam
2012-05-02 16:06                           ` H.J. Lu
2012-05-02 17:44                             ` Sriraman Tallam
2012-05-02 18:04                               ` H.J. Lu
2012-05-07 16:58                                 ` Sriraman Tallam
2012-05-09 19:01                                   ` Sriraman Tallam
2012-05-10 17:55                                     ` H.J. Lu
2012-05-12  2:04                                       ` Sriraman Tallam
2012-05-12 13:38                                         ` H.J. Lu
2012-05-14 18:29                                           ` Sriraman Tallam
2012-05-26  0:07                                             ` H.J. Lu
2012-05-26  0:16                                               ` Sriraman Tallam
2012-05-26  0:27                                                 ` H.J. Lu
2012-05-26  1:54                                                   ` Sriraman Tallam
     [not found]                                                     ` <CAMe9rOowm9K7r1xnRdRjW5Y4Ay+WxgSsBLTgGvq24z=i42AS+g@mail.gmail.com>
     [not found]                                                       ` <CAAs8HmzeQigcLQyfkC02u=6gCTLkjLLa_jYmp+b1HEtpMCrYWw@mail.gmail.com>
2012-05-26  5:06                                                         ` H.J. Lu
2012-05-26 22:35                                                           ` Sriraman Tallam
2012-05-26 23:56                                                             ` H.J. Lu
2012-05-27  0:24                                                               ` Sriraman Tallam
2012-05-27  2:06                                                                 ` H.J. Lu
2012-05-27  2:23                                                                   ` Sriraman Tallam
2012-05-27  2:31                                                                     ` H.J. Lu
2012-05-27 19:02                                                                     ` Ian Lance Taylor
2012-06-04 19:01                                             ` Sriraman Tallam
2012-06-04 21:36                                               ` H.J. Lu
2012-06-04 22:29                                                 ` Sriraman Tallam
2012-06-05 13:56                                                   ` H.J. Lu
2012-06-14 20:35                                               ` Sriraman Tallam
2012-06-20  1:10                                                 ` Sriraman Tallam
2012-07-06  9:14                                                 ` Richard Guenther
2012-07-06 17:38                                                   ` Sriraman Tallam [this message]
2012-07-07  6:06                                                 ` Jason Merrill
2012-07-07 18:38                                                   ` Xinliang David Li
2012-07-08 11:21                                                     ` Jason Merrill
2012-07-09 21:27                                                       ` Xinliang David Li
2012-07-10  9:46                                                         ` Jason Merrill
2012-07-10 16:09                                                           ` Xinliang David Li
     [not found]                                                             ` <CAAs8HmxHF38ktt6syjWp-MpjiX+6NcXh7_8Xn6iKnAiF2vRymQ@mail.gmail.com>
2012-07-19 20:40                                                               ` Jason Merrill
2012-07-30 19:16                                                                 ` Sriraman Tallam
2012-08-25  0:34                                                                   ` Sriraman Tallam
2012-09-18 16:29                                                                     ` Sriraman Tallam
2012-10-05 17:07                                                                       ` Xinliang David Li
2012-10-05 17:44                                                                     ` Jason Merrill
2012-10-05 18:14                                                                       ` Jason Merrill
2012-10-05 21:58                                                                       ` Sriraman Tallam
2012-10-05 22:50                                                                         ` Jason Merrill
2012-10-05 23:45                                                                           ` Sriraman Tallam
2012-10-05 18:32                                                                     ` Jason Merrill
2012-10-11  0:13                                                                       ` Sriraman Tallam
2012-10-12 22:41                                                                         ` Sriraman Tallam
2012-10-19 15:23                                                                           ` Diego Novillo
2012-10-20  4:29                                                                             ` Sriraman Tallam
2012-10-23 21:21                                                                               ` Sriraman Tallam
2012-10-26 16:53                                                                                 ` Jan Hubicka
2012-10-28  4:31                                                                                   ` Sriraman Tallam
2012-10-29 13:05                                                                                     ` Jan Hubicka
2012-10-29 17:56                                                                                       ` Sriraman Tallam
2012-10-30 19:18                                                                                     ` Jason Merrill
2012-10-31  0:58                                                                                       ` Sriraman Tallam
     [not found]                                                                                       ` <CAAs8Hmw09giv-5_v0irhByTjTJV=kD58rCAD2SAz7M8zrwjBOA@mail.gmail.com>
2012-10-31 14:27                                                                                         ` Jason Merrill
2012-11-02  2:53                                                                                           ` Sriraman Tallam
2012-11-06  2:38                                                                                             ` Sriraman Tallam
2012-11-06 15:52                                                                                               ` Jason Merrill
2012-11-06 18:17                                                                                                 ` Sriraman Tallam
2012-11-10  1:33                                                                                                 ` Sriraman Tallam
2012-11-12  5:04                                                                                                   ` Jason Merrill
2012-11-13  1:11                                                                                                     ` Sriraman Tallam
2012-11-13  2:39                                                                                                       ` Jason Merrill
2012-11-13 21:57                                                                                                         ` Sriraman Tallam
2012-11-17 22:23                                                                                                           ` H.J. Lu
2012-11-06 22:15                                                                                               ` Gerald Pfeifer
2012-10-26 14:11                                                                               ` Diego Novillo
2012-10-26 16:54 Xinliang David Li
2012-10-26 17:28 ` Sriraman Tallam
2012-11-06 22:17 Dominique Dhumieres
2012-11-07  1:16 ` Gerald Pfeifer
2012-11-07  8:53   ` Dominique Dhumieres

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=CAAs8Hmw0UWXM-ARfynwk4fJh-rnbT2pCJzXhuNgZhNR585SFnw@mail.gmail.com \
    --to=tmsriram@google.com \
    --cc=davidxl@google.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hjl.tools@gmail.com \
    --cc=jason@redhat.com \
    --cc=jh@suse.cz \
    --cc=mark@codesourcery.com \
    --cc=nathan@codesourcery.com \
    --cc=reply@codereview.appspotmail.com \
    --cc=richard.guenther@gmail.com \
    --cc=ubizjak@gmail.com \
    /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).