summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2019-11-12 09:25:59 -0800
committerAdrian Prantl <aprantl@apple.com>2019-11-12 09:38:37 -0800
commit3b73dcdc9656e156c4380454150b8986c5b9aad1 (patch)
treeb7c97bb950603e96ef85ab90c8ecc4481541f2d0 /lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
parent54a9b4c02ff57e9847e0c501578e51db6f73d3be (diff)
downloadbcm5719-llvm-3b73dcdc9656e156c4380454150b8986c5b9aad1.tar.gz
bcm5719-llvm-3b73dcdc9656e156c4380454150b8986c5b9aad1.zip
Performance: Add a set of visited SymbolFiles to the other FindFiles variant.
This is basically the same bug as in r260434. SymbolFileDWARF::FindTypes has exponential worst-case when digging through dependency DAG of .pcm files because each object file and .pcm file may depend on an already-visited .pcm file, which may again have dependencies. Fixed here by carrying a set of already visited SymbolFiles around. rdar://problem/56993424 Differential Revision: https://reviews.llvm.org/D70106
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp')
-rw-r--r--lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp b/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
index f84cf0c5368..c77ddd37887 100644
--- a/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
+++ b/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
@@ -307,8 +307,9 @@ void SymbolFileBreakpad::FindTypes(
uint32_t max_matches, llvm::DenseSet<SymbolFile *> &searched_symbol_files,
TypeMap &types) {}
-void SymbolFileBreakpad::FindTypes(llvm::ArrayRef<CompilerContext> pattern,
- LanguageSet languages, TypeMap &types) {}
+void SymbolFileBreakpad::FindTypes(
+ llvm::ArrayRef<CompilerContext> pattern, LanguageSet languages,
+ llvm::DenseSet<SymbolFile *> &searched_symbol_files, TypeMap &types) {}
void SymbolFileBreakpad::AddSymbols(Symtab &symtab) {
Log *log = GetLogIfAllCategoriesSet(LIBLLDB_LOG_SYMBOLS);
OpenPOWER on IntegriCloud