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

Guillaume Chatelet via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 9 04:04:46 PST 2020


gchatelet added a comment.

Thx for the summary @tejohnson.

In D61634#1808265 <https://reviews.llvm.org/D61634#1808265>, @tejohnson wrote:

> >> 3. Propagate/merge the `no-builtin` IR attribute for LTO by "updating `AttributeFuncs::areInlineCompatible` and/or `AttributeFuncs::mergeAttributesForInlining` and adding a new MergeRule in `include/llvm/IR/Attributes.td` and writing a function like `adjustCallerStackProbeSize`."
> > 
> > This one isn't about LTO, but rather the inliner. You could have different functions in the same module even without LTO that have incompatible no-builtin attributes. There isn't any propagation required for LTO.
>
> Not done yet - I can work on this.


That would be great!

> 
> 
>> 
>> 
>>> 4. Get inspiration from `TargetTransformInfo` to get `TargetLibraryInfo` on a per function basis for all passes and respect the IR attribute.
> 
> Done (D67923 <https://reviews.llvm.org/D67923> was the last patch in the series to enable this, committed at 878ab6df033d <https://reviews.llvm.org/rG878ab6df033d44430939c02075ee00800995dc3b>).
> 
> I'm not quite sure where D71710 <https://reviews.llvm.org/D71710> ([instrinsics] Add @llvm.memcpy.inline instrinsics) fits in to the above list.

I believe it does.

> Anything else missing?

Yes when the intrinsic is in we need a way to access it from C++ so a Clang builtin is necessary. I'll take care of it.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D61634





More information about the cfe-commits mailing list