[PATCH] D36850: [ThinLTO] Add norecurse function attribute propagation
Di Mo via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 7 00:47:09 PDT 2021
modimo updated this revision to Diff 356881.
modimo marked an inline comment as done.
modimo added a comment.
Herald added a subscriber: dexonsmith.
I'm headed out on vacation until Aug. 1st so sending an update of WIP-ish revision. Will definitely pick this up again when I get back :D
Appreciate the review and the explanations @tejohnson. I did a full refactoring of how we calculate attributes and added a caching layer.
I added WIP nounwind propagation so folks can look it over and try it out, known deficiencies:
1. thinLTO version hasn't been updated for the new field. Will definitely do that (or split it out from NoRecurse as a separate change?)
2. testing needs to be cleaned up for this field
Also:
1. Need to evaluate timetrace to see if the caching strategy is better for build time
2. Add quite a bit more testing to validate how we're handling all the different linkage scenarios
For reference on nounwind propagation now:
Build compiler with this change on top of b16400449fc763fdae2d2ce809ce61c88acb6684 <https://reviews.llvm.org/rGb16400449fc763fdae2d2ce809ce61c88acb6684> building cd0a1226b50081e86eb75a89d01e8782423971a0 <https://reviews.llvm.org/rGcd0a1226b50081e86eb75a89d01e8782423971a0>
thinlto/
"dwarfehprepare.NumCleanupLandingPadsRemaining": 216754,
"dwarfehprepare.NumNoUnwind": 300957,
"dwarfehprepare.NumUnwind": 332785,
thinlto_withpropagation/
"dwarfehprepare.NumCleanupLandingPadsRemaining": 90401,
"dwarfehprepare.NumNoUnwind": 513744,
"dwarfehprepare.NumUnwind": 119360,
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D36850/new/
https://reviews.llvm.org/D36850
Files:
clang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
clang/test/CodeGen/thinlto-distributed-cfi.ll
llvm/include/llvm/IR/ModuleSummaryIndex.h
llvm/include/llvm/LTO/LTO.h
llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/ModuleSummaryIndex.cpp
llvm/lib/LTO/LTO.cpp
llvm/lib/LTO/LTOBackend.cpp
llvm/lib/LTO/ThinLTOCodeGenerator.cpp
llvm/lib/Transforms/IPO/FunctionAttrs.cpp
llvm/test/ThinLTO/X86/Inputs/functionattr-prop.ll
llvm/test/ThinLTO/X86/Inputs/linkonce_functionattrs_comdat.ll
llvm/test/ThinLTO/X86/deadstrip.ll
llvm/test/ThinLTO/X86/function_entry_count.ll
llvm/test/ThinLTO/X86/functionattr-prop.ll
llvm/test/ThinLTO/X86/linkonce_functionattrs_comdat.ll
llvm/test/ThinLTO/X86/linkonce_resolution_comdat.ll
llvm/test/ThinLTO/X86/not-internalized.ll
llvm/test/ThinLTO/X86/weak_externals.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36850.356881.patch
Type: text/x-patch
Size: 30859 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210707/4fce5ca9/attachment-0001.bin>
More information about the llvm-commits
mailing list