MergedLoadStoreMotion pass
authorGerolf Hoflehner <ghoflehner@apple.com>
Fri, 18 Jul 2014 19:13:09 +0000 (19:13 +0000)
committerGerolf Hoflehner <ghoflehner@apple.com>
Fri, 18 Jul 2014 19:13:09 +0000 (19:13 +0000)
commitf27ae6cdcfb8eda90f43103f93576de238eba17a
tree8022983a65fbe248360146c5971f4a5798e0cdd1
parentebaf14bdd05f8593581ace802d4505930efd8967
MergedLoadStoreMotion pass

Merges equivalent loads on both sides of a hammock/diamond
and hoists into into the header.
Merges equivalent stores on both sides of a hammock/diamond
and sinks it to the footer.
Can enable if conversion and tolerate better load misses
and store operand latencies.

llvm-svn: 213396
llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c
llvm/include/llvm-c/Transforms/Scalar.h
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/LinkAllPasses.h
llvm/include/llvm/Transforms/Scalar.h
llvm/lib/LTO/LTOCodeGenerator.cpp
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
llvm/lib/Transforms/Scalar/CMakeLists.txt
llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp [new file with mode: 0644]
llvm/lib/Transforms/Scalar/Scalar.cpp
llvm/test/Transforms/InstMerge/ld_hoist_st_sink.ll [new file with mode: 0644]