summaryrefslogtreecommitdiff
path: root/include/llvm/Transforms/IPO.h
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2008-11-02 05:52:50 +0000
committerNick Lewycky <nicholas@mxc.ca>2008-11-02 05:52:50 +0000
commit579a0246616d76bc536de0e41edf069d091604be (patch)
tree2d39570a32af93de6f9d8e9b15240f4b9eb2744a /include/llvm/Transforms/IPO.h
parent8e39432ea9751917d5cef1f18f6c32382c384d58 (diff)
downloadllvm-579a0246616d76bc536de0e41edf069d091604be.tar.gz
llvm-579a0246616d76bc536de0e41edf069d091604be.tar.bz2
llvm-579a0246616d76bc536de0e41edf069d091604be.tar.xz
Add a new MergeFunctions pass. It finds identical functions and merges them.
This triggers only 60 times in llvm-test (look at .llvm.bc, not .linked.rbc) and so it probably wont be turned on by default. Also, may of those are likely to go away when PR2973 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58557 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms/IPO.h')
-rw-r--r--include/llvm/Transforms/IPO.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h
index ac8da776a2..887614074c 100644
--- a/include/llvm/Transforms/IPO.h
+++ b/include/llvm/Transforms/IPO.h
@@ -38,7 +38,7 @@ ModulePass *createStripSymbolsPass(bool OnlyDebugInfo = false);
/// to invoke/unwind instructions. This should really be part of the C/C++
/// front-end, but it's so much easier to write transformations in LLVM proper.
///
-ModulePass* createLowerSetJmpPass();
+ModulePass *createLowerSetJmpPass();
//===----------------------------------------------------------------------===//
/// createConstantMergePass - This function returns a new pass that merges
@@ -186,13 +186,19 @@ ModulePass *createStripDeadPrototypesPass();
/// createPartialSpecializationPass - This pass specializes functions for
/// constant arguments.
///
-ModulePass* createPartialSpecializationPass();
+ModulePass *createPartialSpecializationPass();
//===----------------------------------------------------------------------===//
/// createAddReadAttrsPass - This pass discovers functions that do not access
/// memory, or only read memory, and gives them the readnone/readonly attribute.
///
-Pass* createAddReadAttrsPass();
+Pass *createAddReadAttrsPass();
+
+//===----------------------------------------------------------------------===//
+/// createMergeFunctionsPass - This pass discovers identical functions and
+/// collapses them.
+///
+ModulePass *createMergeFunctionsPass();
} // End llvm namespace