[PATCH] D88180: [RFC] HashTree and MachineOutliner HashTree Serialization for cross module data sharing.
Puyan Lotfi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 23 13:20:27 PDT 2020
plotfi created this revision.
plotfi added reviewers: lanza, paquette, thegameg, kyulee, manmanren.
Herald added subscribers: llvm-commits, dexonsmith, hiraditya, mgorny.
Herald added a project: LLVM.
plotfi requested review of this revision.
This is a first pass at bringing some work that has been done on assisting the Machine Outliner with cross module outlining decisions. A lot of this work is inspired by or directly refactored from the Global Machine Outliner for ThinLTO talk from EuroLLVM 2020 (https://llvm.org/devmtg/2020-04/talks.html#TechTalk_58).
In this diff however, there is no LTO: This diff enables a way to serialize a representation of the MachineOutliner suffix tree as a HashTree to disk. Serialized HashTrees can be read in and used to aid in making better outlining decisions for modules where a Candidate sequence only occurs once, but which have duplicate Candidates off module. This is a first step and I anticipate this will evolve a lot from its current form.
For now I have a single test case to showcase the mechanics, but am working on more test cases.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D88180
Files:
llvm/include/llvm/CodeGen/MachineOutliner.h
llvm/include/llvm/CodeGen/MachineStableHash.h
llvm/include/llvm/CodeGen/StableHashTree.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/MachineOutliner.cpp
llvm/lib/CodeGen/MachineStableHash.cpp
llvm/lib/CodeGen/StableHashTree.cpp
llvm/test/CodeGen/AArch64/machine-outliner-serialize-hashtree.mir
llvm/test/CodeGen/Inputs/machine-outliner-serialize-hashtree-external.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88180.293840.patch
Type: text/x-patch
Size: 28691 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200923/8b0ce335/attachment-0001.bin>
More information about the llvm-commits
mailing list