summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/CGSCCPassManager.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2015-01-05 12:32:11 +0000
committerChandler Carruth <chandlerc@gmail.com>2015-01-05 12:32:11 +0000
commit539dc4b9d511918c68a0c4b83c37fc8ff5703ad6 (patch)
tree6bce37100b28233fa71b7a5b6fb40ebcb2c90fe9 /llvm/lib/Analysis/CGSCCPassManager.cpp
parente5e8fb3bf625ba14740b002687a5df581701ee83 (diff)
downloadbcm5719-llvm-539dc4b9d511918c68a0c4b83c37fc8ff5703ad6.tar.gz
bcm5719-llvm-539dc4b9d511918c68a0c4b83c37fc8ff5703ad6.zip
[PM] Don't run the machinery of invalidating all the analysis passes
when all are being preserved. We want to short-circuit this for a couple of reasons. One, I don't really want passes to grow a dependency on actually receiving their invalidate call when they've been preserved. I'm thinking about removing this entirely. But more importantly, preserving everything is likely to be the common case in a lot of scenarios, and it would be really good to bypass all of the invalidation and preservation machinery there. Avoiding calling N opaque functions to try to invalidate things that are by definition still valid seems important. =] This wasn't really inpsired by much other than seeing the spam in the logging for analyses, but it seems better ot get it checked in rather than forgetting about it. llvm-svn: 225163
Diffstat (limited to 'llvm/lib/Analysis/CGSCCPassManager.cpp')
-rw-r--r--llvm/lib/Analysis/CGSCCPassManager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp
index 4d569a972fe..ad7eea8efca 100644
--- a/llvm/lib/Analysis/CGSCCPassManager.cpp
+++ b/llvm/lib/Analysis/CGSCCPassManager.cpp
@@ -92,6 +92,10 @@ void CGSCCAnalysisManager::invalidateImpl(void *PassID, LazyCallGraph::SCC &C) {
void CGSCCAnalysisManager::invalidateImpl(LazyCallGraph::SCC &C,
const PreservedAnalyses &PA) {
+ // Short circuit for a common case of all analyses being preserved.
+ if (PA.areAllPreserved())
+ return;
+
if (DebugPM)
dbgs() << "Invalidating all non-preserved analyses for SCC: " << C.getName()
<< "\n";
OpenPOWER on IntegriCloud