summaryrefslogtreecommitdiff
path: root/include/llvm/Transforms/Scalar.h
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-10-26 19:12:14 +0000
committerDan Gohman <gohman@apple.com>2009-10-26 19:12:14 +0000
commit6000e253d4b59677030fdf2f53f8d1e5fa00a1a4 (patch)
tree88b2e31a282858d88066399cbd9c1a278c3063b5 /include/llvm/Transforms/Scalar.h
parentc932213e136ebcf7692b803369fd7bbf3c461daa (diff)
downloadllvm-6000e253d4b59677030fdf2f53f8d1e5fa00a1a4.tar.gz
llvm-6000e253d4b59677030fdf2f53f8d1e5fa00a1a4.tar.bz2
llvm-6000e253d4b59677030fdf2f53f8d1e5fa00a1a4.tar.xz
Check in the experimental GEP splitter pass. This pass splits complex
GEPs (more than one non-zero index) into simple GEPs (at most one non-zero index). In some simple experiments using this it's not uncommon to see 3% overall code size wins, because it exposes redundancies that can be eliminated, however it's tricky to use because instcombine aggressively undoes the work that this pass does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85144 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms/Scalar.h')
-rw-r--r--include/llvm/Transforms/Scalar.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/Transforms/Scalar.h b/include/llvm/Transforms/Scalar.h
index fee4e65938..c5378994fd 100644
--- a/include/llvm/Transforms/Scalar.h
+++ b/include/llvm/Transforms/Scalar.h
@@ -341,6 +341,12 @@ FunctionPass *createSSIPass();
//
FunctionPass *createSSIEverythingPass();
+//===----------------------------------------------------------------------===//
+//
+// GEPSplitter - Split complex GEPs into simple ones
+//
+FunctionPass *createGEPSplitterPass();
+
} // End llvm namespace
#endif