This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: User directed Function Multiversioning via Function Overloading (issue5752064)
- From: Sriraman Tallam <tmsriram at google dot com>
- To: jason at redhat dot com, mark at codesourcery dot com, nathan at codesourcery dot com, "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Richard Guenther <richard dot guenther at gmail dot com>, Jan Hubicka <jh at suse dot cz>, Uros Bizjak <ubizjak at gmail dot com>, reply at codereview dot appspotmail dot com, gcc-patches at gcc dot gnu dot org, David Li <davidxl at google dot com>
- Date: Thu, 14 Jun 2012 13:13:19 -0700
- Subject: Re: User directed Function Multiversioning via Function Overloading (issue5752064)
- References: <20120307004630.A503DB21B6@azwildcat.mtv.corp.google.com> <CAFiYyc3hy9wdB0d87D0TZX1Vj7P=oH0-ARf0rE3Z9wc+i8j8UA@mail.gmail.com> <CAAs8HmxsZPTH4VS78G9HZOGYXxEiVi90PgRrCc6gwp9de935WQ@mail.gmail.com> <CAAs8HmyeZE25B+vAp7aretL85WtPfyUuLAZNw7oFPFsUHZBtPA@mail.gmail.com> <CAMe9rOqUpYHNnHXMpVbN8nEPFcRV0Gr14j1YxA-Bx7Y0nMUu3w@mail.gmail.com> <CAAs8Hmx7OfYrNVFsVYi_BknexVFvP0hYroH7dnusu3Z86gs-CQ@mail.gmail.com> <CAMe9rOqaUNN67h64jJMugTsgrvpC7gsQx74UcKjBSGorxU0qOQ@mail.gmail.com> <CAAs8HmztTFyAO7ze2HKrfSNLOKc7rHomAuSLSKOSRQ-bkN_dgQ@mail.gmail.com> <CAMe9rOroWTs9KYo7ONfnc1aVK1pySzMfpEnF24C_ABF9TG5zhA@mail.gmail.com> <CAAs8Hmz64_myVEXaCrOQFBZgmW7wkBpuJnkkB_j=ebipuq92Tg@mail.gmail.com> <CAMe9rOr7Y-BPqEymmg7gApt1KroT_mtrqq8rvq4de_SM0J-zbQ@mail.gmail.com> <CAAs8HmznitzYwUCMB9kdv1fpHMMx2c-wg3_UYf8v+E4NJf25Pw@mail.gmail.com> <CAMe9rOrSAVZp0oiz=ocrWU0h4sLeoOF2hW0qsU-fNchCG3Umuw@mail.gmail.com> <CAAs8Hmw1Jc_cPKVN_WfLkcpPeFiF=QLkVFf4AGuk3PjNnR_GYw@mail.gmail.com> <CAMe9rOpMjFN94+pkLJGO3xUEiDgTJ8i4Rx97-oucxue6SskKMQ@mail.gmail.com> <CAAs8HmxrmBzsu6vejEhuequU0KYTDiCjg8HTxU1YuZ9wAm6PXA@mail.gmail.com> <CAMe9rOp_zzhPqYdzbJqRmLcDmcRo+fLS-RyDB6wB8K-uj8nu4Q@mail.gmail.com> <CAAs8HmwXAbwYbEaxvwA7KZx=454outzb-Cx4iifzZY9gB3Zx3w@mail.gmail.com> <CAAs8HmykJa+dM_efFRkL=7BTNQ5yzCEj1KyjKU_kTZNL2GefSQ@mail.gmail.com> <CAMe9rOoaOyQyWfVwacYmSX7RjKRJmPdHT-o3ZuTmrwa9xpqygQ@mail.gmail.com> <CAAs8HmzZkx+FfZ=fcfnfG7Z7buF5+z_GN_gA4r_a_80NUuTzdg@mail.gmail.com> <CAMe9rOrdZaTDzakgpHxXWE3hhUvR7LNO1NkUrtAJJCjTjz_mjg@mail.gmail.com> <CAAs8Hmzw=tTGLypq1GQ7cA=DFupP8VpwB5QiE+jwLcYOovV=YQ@mail.gmail.com> <CAAs8HmzF0JJWPvFzoNGMSJ7ZS1h4KmROdx29-__8Oh9yUA1=JA@mail.gmail.com>
+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?
Honza, your thoughts on the callgraph part?
Richard, any further comments/feedback?
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.