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)
commitd94715e273d879eab53684835375ddbed7eb1eb3
tree0ac571c833719609d5e861f4f89da538ae19f8a3
parent63d94561b517c47946b9f4d79722d5ec5c49be6e
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213396 91177308-0d34-0410-b5e6-96231b3b80d8
bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c
include/llvm-c/Transforms/Scalar.h
include/llvm/InitializePasses.h
include/llvm/LinkAllPasses.h
include/llvm/Transforms/Scalar.h
lib/LTO/LTOCodeGenerator.cpp
lib/Transforms/IPO/PassManagerBuilder.cpp
lib/Transforms/Scalar/CMakeLists.txt
lib/Transforms/Scalar/MergedLoadStoreMotion.cpp [new file with mode: 0644]
lib/Transforms/Scalar/Scalar.cpp
test/Transforms/InstMerge/ld_hoist_st_sink.ll [new file with mode: 0644]