[PATCH] D61634: [clang/llvm] Allow efficient implementation of libc's memory functions in C/C++

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 4 11:54:10 PST 2019


tejohnson added a comment.

In D61634#1682660 <https://reviews.llvm.org/D61634#1682660>, @gchatelet wrote:

> In D61634#1679331 <https://reviews.llvm.org/D61634#1679331>, @tejohnson wrote:
>
> > In D61634#1635595 <https://reviews.llvm.org/D61634#1635595>, @tejohnson wrote:
> >
> > > I had some time to work on this finally late last week. I decided the most straightforward thing was to implement the necessary interface changes to the TLI analysis to make it require a Function (without any changes yet to how that analysis operates). See D66428 <https://reviews.llvm.org/D66428> that I just mailed for review. That takes care of the most widespread changes needed for this migration, and afterwards we can change the analysis to look at the function attributes and make a truly per-function TLI.
> >
> >
> > D66428 <https://reviews.llvm.org/D66428> went in a few weeks ago at r371284, and I just mailed the follow on patch D67923 <https://reviews.llvm.org/D67923> which will adds the support into the TLI analysis to use the Function to override the available builtins (with some of the code stubbed out since we don't yet have those per-Function attributes finalized).
> >
> > @gchatelet where are you at on finalizing this patch? Also, I mentioned this offline but to follow up here: I think we will want an attribute to represent -fno-builtins (so that it doesn't need to be expanded out into the full list of individual no-builtin-{func} attributes, which would be both more verbose and less efficient, as well as being less backward compatible when new builtin funcs are added).
>
>
> I'll break this patch in several pieces. The first one is to add the `no_builtin` attribute, see https://reviews.llvm.org/D61634.


Are you planning to add a follow on patch that translates the various -fno-builtin* options to these attributes? Once that is done I can refine D67923 <https://reviews.llvm.org/D67923> to actually set the TLI availability from the attributes and remove the clang functionality that does this from the options.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61634/new/

https://reviews.llvm.org/D61634





More information about the llvm-commits mailing list