code hoisting pass based on GVN
authorSebastian Pop <spop@codeaurora.org>
Thu, 14 Jul 2016 12:18:53 +0000 (12:18 +0000)
committerSebastian Pop <spop@codeaurora.org>
Thu, 14 Jul 2016 12:18:53 +0000 (12:18 +0000)
commit63847d04e79549f345c29d41f7d6da24cb18687c
tree660a34d642c3c30c52daa57e0a6598a6e9bd1682
parenta76a8e50e5be6b34b1a157b1a97daa7390a2f448
code hoisting pass based on GVN

This pass hoists duplicated computations in the program. The primary goal of
gvn-hoist is to reduce the size of functions before inline heuristics to reduce
the total cost of function inlining.

Pass written by Sebastian Pop, Aditya Kumar, Xiaoyu Hu, and Brian Rzycki.
Important algorithmic contributions by Daniel Berlin under the form of reviews.

Differential Revision: http://reviews.llvm.org/D19338

llvm-svn: 275401
12 files changed:
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/LinkAllPasses.h
llvm/include/llvm/Transforms/Scalar.h
llvm/include/llvm/Transforms/Scalar/GVN.h
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
llvm/lib/Transforms/Scalar/CMakeLists.txt
llvm/lib/Transforms/Scalar/GVNHoist.cpp [new file with mode: 0644]
llvm/lib/Transforms/Scalar/Scalar.cpp
llvm/test/Transforms/GVN/hoist-pr20242.ll [new file with mode: 0644]
llvm/test/Transforms/GVN/hoist-pr22005.ll [new file with mode: 0644]
llvm/test/Transforms/GVN/hoist.ll [new file with mode: 0644]