summaryrefslogtreecommitdiff
path: root/include/llvm/InitializePasses.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-07-04 00:09:54 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-07-04 00:09:54 +0000
commit33242fd3ed5586091e73254b58dd1825e9d53c60 (patch)
tree1cd48f1af6b26d35653abd52edd3df39f303773d /include/llvm/InitializePasses.h
parent0fd518beb38568e58eeec86876bb597bab06b722 (diff)
downloadllvm-33242fd3ed5586091e73254b58dd1825e9d53c60.tar.gz
llvm-33242fd3ed5586091e73254b58dd1825e9d53c60.tar.bz2
llvm-33242fd3ed5586091e73254b58dd1825e9d53c60.tar.xz
Add an experimental early if-conversion pass, off by default.
This pass performs if-conversion on SSA form machine code by speculatively executing both sides of the branch and using a cmov instruction to select the result. This can help lower the number of branch mispredictions on architectures like x86 that don't have predicable instructions. The current implementation is very aggressive, and causes regressions on mosts tests. It needs good heuristics that have yet to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159694 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/InitializePasses.h')
-rw-r--r--include/llvm/InitializePasses.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/InitializePasses.h b/include/llvm/InitializePasses.h
index c2cb7c218b..e6fa8c3d30 100644
--- a/include/llvm/InitializePasses.h
+++ b/include/llvm/InitializePasses.h
@@ -100,6 +100,7 @@ void initializeDomPrinterPass(PassRegistry&);
void initializeDomViewerPass(PassRegistry&);
void initializeDominanceFrontierPass(PassRegistry&);
void initializeDominatorTreePass(PassRegistry&);
+void initializeEarlyIfConverterPass(PassRegistry&);
void initializeEdgeBundlesPass(PassRegistry&);
void initializeEdgeProfilerPass(PassRegistry&);
void initializeExpandPostRAPass(PassRegistry&);