summaryrefslogtreecommitdiff
path: root/lib/Passes/PassRegistry.def
diff options
context:
space:
mode:
authorMatthew Simpson <mssimpso@codeaurora.org>2017-10-25 13:40:08 +0000
committerMatthew Simpson <mssimpso@codeaurora.org>2017-10-25 13:40:08 +0000
commit7d6a3b6798102bae358f91baf9e6b44ab796332b (patch)
treeb971d9576b486daf900c48d792eb1f3c8d82b150 /lib/Passes/PassRegistry.def
parent1a04abaeee1d2af1197e395e975d8c2b7a1bdeab (diff)
Add CalledValuePropagation pass
This patch adds a new pass for attaching !callees metadata to indirect call sites. The pass propagates values to call sites by performing an IPSCCP-like analysis using the generic sparse propagation solver. For indirect call sites having a small set of possible callees, the attached metadata indicates what those callees are. The metadata can be used to facilitate optimizations like intersecting the function attributes of the possible callees, refining the call graph, performing indirect call promotion, etc. Differential Revision: https://reviews.llvm.org/D37355 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316576 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Passes/PassRegistry.def')
-rw-r--r--lib/Passes/PassRegistry.def1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Passes/PassRegistry.def b/lib/Passes/PassRegistry.def
index bfe3dd782c1..20d1220ac33 100644
--- a/lib/Passes/PassRegistry.def
+++ b/lib/Passes/PassRegistry.def
@@ -39,6 +39,7 @@ MODULE_ALIAS_ANALYSIS("globals-aa", GlobalsAA())
#define MODULE_PASS(NAME, CREATE_PASS)
#endif
MODULE_PASS("always-inline", AlwaysInlinerPass())
+MODULE_PASS("called-value-propagation", CalledValuePropagationPass())
MODULE_PASS("constmerge", ConstantMergePass())
MODULE_PASS("cross-dso-cfi", CrossDSOCFIPass())
MODULE_PASS("deadargelim", DeadArgumentEliminationPass())