[PATCH] D75590: [Attributor] IPO across definition boundary of a function marked alwaysinline

Luofan Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 5 19:39:19 PST 2020


bbn updated this revision to Diff 248645.
bbn added a comment.
Herald added a subscriber: hiraditya.

1. Use `InlineableFunctions` ptr set to track functions that can be inlined
2. As the ptr set is a private variable for `Attributor`, so in `AA.initialize()`, we cannot determine if the inexactly defined function can be inlined or not, so all inexactly defined functions that have `alwayinline` attribute will keep its state unchanged (just `return` from the function)
3. In `CreateAAFor` function, search the ptr set for the function, if the function has `alwayinline` attribute but cannot be inlined, we cannot analyze it (`indicatePessimisticFixpoint`)


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

https://reviews.llvm.org/D75590

Files:
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/test/Transforms/Attributor/alwaysinline.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75590.248645.patch
Type: text/x-patch
Size: 6748 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200306/fc289df5/attachment.bin>


More information about the llvm-commits mailing list