[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