[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