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: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Sriraman Tallam <tmsriram at google 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: Mon, 4 Jun 2012 14:36:26 -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>
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,
>
Build failed in libstdc++-v3:
/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_classes.h:546:59:
internal compiler error: tree check: expected function_decl, have
identifier_node in tourney, at cp/call.c:8498
for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[5]: *** [x86_64-unknown-linux-gnu/bits/stdc++.h.gch/O2g.gch] Erro
on Linux/x86-64.
--
H.J.