OK, thanks for clarifying.
On Wed, Jan 17, 2018 at 4:18 PM, Keane, Erich <erich.ke...@intel.com> wrote: > It did not, I held it until just after the branch was made. > > -----Original Message----- > From: hwennb...@google.com [mailto:hwennb...@google.com] On Behalf Of Hans > Wennborg > Sent: Wednesday, January 17, 2018 4:47 AM > To: reviews+d41837+public+36225483e5851...@reviews.llvm.org > Cc: Keane, Erich <erich.ke...@intel.com>; Richard Smith > <rich...@metafoo.co.uk>; Aaron Ballman <aaron.ball...@gmail.com>; Eric > Christopher <echri...@gmail.com>; cfe-commits <cfe-commits@lists.llvm.org> > Subject: Re: [PATCH] D41837: Add Function multiversion to the release notes. > > Did this functionality land before the 6.0 branch, that is, should we copy > the release notes to the branch? > > Thanks > Hans > > On Tue, Jan 9, 2018 at 12:37 AM, Erich Keane via Phabricator > <revi...@reviews.llvm.org> wrote: >> This revision was automatically updated to reflect the committed changes. >> Closed by commit rC322043: Document attribute target multiversioning. >> (authored by erichkeane, committed by ). >> >> Changed prior to commit: >> https://reviews.llvm.org/D41837?vs=128982&id=128995#toc >> >> Repository: >> rC Clang >> >> https://reviews.llvm.org/D41837 >> >> Files: >> docs/ReleaseNotes.rst >> include/clang/Basic/AttrDocs.td >> >> >> Index: docs/ReleaseNotes.rst >> =================================================================== >> --- docs/ReleaseNotes.rst >> +++ docs/ReleaseNotes.rst >> @@ -80,6 +80,12 @@ >> Attribute Changes in Clang >> -------------------------- >> >> +- Clang now supports function multiversioning with attribute 'target' >> +on ELF >> + based x86/x86-64 environments by using indirect functions. This >> +implementation >> + has a few minor limitations over the GCC implementation for the >> +sake of AST >> + sanity, however it is otherwise compatible with existing code using >> +this >> + feature for GCC. Consult the documentation for the target attribute >> +for more >> + information. >> - ... >> >> Windows Support >> Index: include/clang/Basic/AttrDocs.td >> =================================================================== >> --- include/clang/Basic/AttrDocs.td >> +++ include/clang/Basic/AttrDocs.td >> @@ -1474,6 +1474,24 @@ >> Example "subtarget features" from the x86 backend include: "mmx", >> "sse", "sse4.2", "avx", "xop" and largely correspond to the machine >> specific options handled by the front end. >> + >> +Additionally, this attribute supports function multiversioning for >> +ELF based >> +x86/x86-64 targets, which can be used to create multiple >> +implementations of the same function that will be resolved at runtime >> +based on the priority of their ``target`` attribute strings. A >> +function is considered a multiversioned function if either two >> +declarations of the function have different ``target`` attribute >> + strings, or if it has a ``target`` attribute string of ``default``. >> +For >> + example: >> + >> + .. code-block:: c++ >> + __attribute__((target("arch=atom"))) >> + void foo() {} // will be called on 'atom' processors. >> + __attribute__((target("default"))) >> + void foo() {} // will be called on any other processors. >> + >> +All multiversioned functions must contain a ``default`` (fallback) >> +implementation, otherwise usages of the function are considered invalid. >> +Additionally, a function may not become multiversioned after its first use. >> }]; >> } >> >> >> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits