diff options
author | Chris Lattner <sabre@nondot.org> | 2010-04-21 00:47:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-04-21 00:47:40 +0000 |
commit | 08e322db8a544d100f7518cfbd39ef8c13067698 (patch) | |
tree | df2db3f5271f3107a90cbac7c24a705820d8e0a2 /test/Linker/2003-08-20-OpaqueTypeResolve.ll | |
parent | 30fdb5c2ac35b8af818ee62bfd184357f20eca34 (diff) | |
download | external_llvm-08e322db8a544d100f7518cfbd39ef8c13067698.zip external_llvm-08e322db8a544d100f7518cfbd39ef8c13067698.tar.gz external_llvm-08e322db8a544d100f7518cfbd39ef8c13067698.tar.bz2 |
Implement (but don't enable) PR6724 and rdar://6295824. In short,
we have RefreshCallGraph detect when a function pass devirtualizes
a call, and have CGSCCPassMgr iterate (up to a count) when this
happens. This allows (in the example) GVN to devirtualize the
call in foo, then the inliner to inline it away.
This is not currently enabled because I haven't done any analysis
on the (potentially substantial) code size or performance impact of
doing this, and guess what, it exposes callgraph updating bugs in
various passes. This is progress though, and you can play with it
by passing -max-cg-scc-iterations=5 to opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101973 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Linker/2003-08-20-OpaqueTypeResolve.ll')
0 files changed, 0 insertions, 0 deletions