[PATCH] D41837: Add Function multiversion to the release notes.

Keane, Erich via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 17 07:18:42 PST 2018


It did not, I held it until just after the branch was made.

-----Original Message-----
From: hwennborg at google.com [mailto:hwennborg at google.com] On Behalf Of Hans Wennborg
Sent: Wednesday, January 17, 2018 4:47 AM
To: reviews+D41837+public+36225483e585112f at reviews.llvm.org
Cc: Keane, Erich <erich.keane at intel.com>; Richard Smith <richard at metafoo.co.uk>; Aaron Ballman <aaron.ballman at gmail.com>; Eric Christopher <echristo at gmail.com>; cfe-commits <cfe-commits at 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 <reviews at 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.
>  }];
>  }
>
>
>


More information about the cfe-commits mailing list