[PM/AA] Replace the only use of the AliasAnalysis::deleteValue API (in
authorChandler Carruth <chandlerc@gmail.com>
Wed, 22 Jul 2015 09:27:58 +0000 (09:27 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Wed, 22 Jul 2015 09:27:58 +0000 (09:27 +0000)
commitda7c1919f7532a9cd15d60a5b669914a56ca09ea
tree8699a0fc723ec1870dd1abe00124d22d21e8b0cf
parenta26f10ce1848f85319444572e47def7b6e4195c5
[PM/AA] Replace the only use of the AliasAnalysis::deleteValue API (in
GlobalsModRef) with CallbackVHs that trigger the same behavior.

This is technically more expensive, but in benchmarking some LTO runs,
it seems unlikely to even be above the noise floor. The only way I was
able to measure the performance of GMR at all was to run nothing else
but this one analysis on a linked clang bitcode file. The call graph
analysis still took 5x more time than GMR, and this change at most made
GMR 2% slower (this is well within the noise, so its hard for me to be
sure that this is an actual change). However, in a real LTO run over the
same bitcode, the GMR run takes so little time that the pass timers
don't measure it.

With this, I can remove the last update API from the AliasAnalysis
interface, but I'll actually remove the interface hook point in
a follow-up commit.

Differential Revision: http://reviews.llvm.org/D11324

llvm-svn: 242878
llvm/lib/Analysis/IPA/GlobalsModRef.cpp