Make decisions about which functions are to be imported, and the module of the function which will be hosting all the other functions.
Depends on: https://reviews.llvm.org/D52966
Paths
| Differential D53253
[Merge SImilar Function ThinLTO 4/n] Make merge function decisions before the thin-lto stage Needs ReviewPublic Authored by hiraditya on Oct 13 2018, 11:04 PM.
Details
Diff Detail
Event TimelineHerald added subscribers: dang, arphaman, dexonsmith and 4 others. · View Herald TranscriptOct 13 2018, 11:04 PM hiraditya retitled this revision from Make merge function decisions before the thin-lto stage to [Merge SImilar Function ThinLTO] Make merge function decisions before the thin-lto stage.Oct 13 2018, 11:21 PM hiraditya retitled this revision from [Merge SImilar Function ThinLTO] Make merge function decisions before the thin-lto stage to [Merge SImilar Function ThinLTO 4/n] Make merge function decisions before the thin-lto stage.Oct 13 2018, 11:25 PM Comment Actions Hi @hiraditya , comments inline.
Comment Actions It's hard to review the changes the way they are currently split up. E.g. This patch adds some fields to the index, without using them or testing them. Those changes are in a different patch or two. It would be good to isolate all the changes that create and set these new index fields and test them via dumping the index to assembly and looking for expected values. Then have another patch that uses them in the FunctionImporter. Etc. Also, it looks like the changes are only enabled for:
Please also add to the new pass manager and the new LTO API (see LTO/LTO.cpp) at the same time.
hiraditya added a parent revision: D52966: [Merge SImilar Function ThinLTO 3/n] Add hash code to function summary.Sep 29 2019, 10:38 PM hiraditya added a child revision: D53254: [Merge SImilar Function ThinLTO 5/n] Set up similar function to be imported.
Revision Contents
Diff 251737 llvm/include/llvm/IR/ModuleSummaryIndex.h
llvm/include/llvm/Transforms/IPO.h
llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
llvm/lib/LTO/ThinLTOCodeGenerator.cpp
llvm/lib/Transforms/IPO/FunctionImport.cpp
llvm/lib/Transforms/IPO/MergeSimilarFunctions.cpp
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
|