diff options
author | Devang Patel <dpatel@apple.com> | 2007-01-15 20:31:54 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-01-15 20:31:54 +0000 |
commit | 39786a90d03d0b4b82fe72b72028b257a676a2fb (patch) | |
tree | 23e381a587aadd65551a25986d4ad119a8967cb6 /llvm/lib/VMCore/PassManager.cpp | |
parent | 9431075206ee36139611849fd3e0d2a57558dc64 (diff) | |
download | bcm5719-llvm-39786a90d03d0b4b82fe72b72028b257a676a2fb.tar.gz bcm5719-llvm-39786a90d03d0b4b82fe72b72028b257a676a2fb.zip |
Do not record last users of Pass Manager.
llvm-svn: 33243
Diffstat (limited to 'llvm/lib/VMCore/PassManager.cpp')
-rw-r--r-- | llvm/lib/VMCore/PassManager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 376e1b798e9..d48c198bbff 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/lib/VMCore/PassManager.cpp @@ -594,8 +594,13 @@ void PMDataManager::add(Pass *P, } } - LastUses.push_back(P); - TPM->setLastUser(LastUses, P); + // Set P as P's last user until someone starts using P. + // However, if P is a Pass Manager then it does not need + // to record its last user. + if (!dynamic_cast<PMDataManager *>(P)) { + LastUses.push_back(P); + TPM->setLastUser(LastUses, P); + } // Take a note of analysis required and made available by this pass. // Remove the analysis not preserved by this pass |