diff options
author | Fangrui Song <i@maskray.me> | 2021-03-06 14:19:22 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2021-03-06 14:19:22 -0800 |
commit | e6a104465d9b6bba3944b2b03f3825bb6bcf24f9 (patch) | |
tree | 90ab5dc9c0bb550c2d27240c3e93e3ee1750fe69 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | fb2cf0dd609238931b0fc53ef0ea2172a99307ae (diff) | |
download | llvm-e6a104465d9b6bba3944b2b03f3825bb6bcf24f9.zip llvm-e6a104465d9b6bba3944b2b03f3825bb6bcf24f9.tar.gz llvm-e6a104465d9b6bba3944b2b03f3825bb6bcf24f9.tar.bz2 |
[ModuleSummaryAnalysis] Avoid duplicate elements in Worklist. NFC
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index c9afdad..e596327 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -91,14 +91,11 @@ static bool findRefEdges(ModuleSummaryIndex &Index, const User *CurUser, SmallPtrSet<const User *, 8> &Visited) { bool HasBlockAddress = false; SmallVector<const User *, 32> Worklist; - Worklist.push_back(CurUser); + if (Visited.insert(CurUser).second) + Worklist.push_back(CurUser); while (!Worklist.empty()) { const User *U = Worklist.pop_back_val(); - - if (!Visited.insert(U).second) - continue; - const auto *CB = dyn_cast<CallBase>(U); for (const auto &OI : U->operands()) { @@ -117,7 +114,8 @@ static bool findRefEdges(ModuleSummaryIndex &Index, const User *CurUser, RefEdges.insert(Index.getOrInsertValueInfo(GV)); continue; } - Worklist.push_back(Operand); + if (Visited.insert(Operand).second) + Worklist.push_back(Operand); } } return HasBlockAddress; |