diff options
author | Matthew Simpson <mssimpso@codeaurora.org> | 2017-10-25 13:40:08 +0000 |
---|---|---|
committer | Matthew Simpson <mssimpso@codeaurora.org> | 2017-10-25 13:40:08 +0000 |
commit | 7d6a3b6798102bae358f91baf9e6b44ab796332b (patch) | |
tree | b971d9576b486daf900c48d792eb1f3c8d82b150 /lib/Passes/PassRegistry.def | |
parent | 1a04abaeee1d2af1197e395e975d8c2b7a1bdeab (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.def | 1 |
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()) |