summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/Scalar.cpp
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2014-05-01 18:38:36 +0000
committerEli Bendersky <eliben@google.com>2014-05-01 18:38:36 +0000
commita108a65df2716de0c12d39f189c300a17a7bde8b (patch)
treeeeb3a1831b939c633e5df5aa4a060bc36c5d0382 /llvm/lib/Transforms/Scalar/Scalar.cpp
parent748be6c3760e47ff9a2c9d88a48f18d92309727b (diff)
downloadbcm5719-llvm-a108a65df2716de0c12d39f189c300a17a7bde8b.tar.gz
bcm5719-llvm-a108a65df2716de0c12d39f189c300a17a7bde8b.zip
Add an optimization that does CSE in a group of similar GEPs.
This optimization merges the common part of a group of GEPs, so we can compute each pointer address by adding a simple offset to the common part. The optimization is currently only enabled for the NVPTX backend, where it has a large payoff on some benchmarks. Review: http://reviews.llvm.org/D3462 Patch by Jingyue Wu. llvm-svn: 207783
Diffstat (limited to 'llvm/lib/Transforms/Scalar/Scalar.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/Scalar.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp
index 09167b9e82a..f8f828c8405 100644
--- a/llvm/lib/Transforms/Scalar/Scalar.cpp
+++ b/llvm/lib/Transforms/Scalar/Scalar.cpp
@@ -64,6 +64,7 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) {
initializeStructurizeCFGPass(Registry);
initializeSinkingPass(Registry);
initializeTailCallElimPass(Registry);
+ initializeSeparateConstOffsetFromGEPPass(Registry);
}
void LLVMInitializeScalarOpts(LLVMPassRegistryRef R) {
OpenPOWER on IntegriCloud