From bb8e43f16c310bb13460cb75da7cb34764f92b39 Mon Sep 17 00:00:00 2001 From: Ivan Chikish Date: Sat, 22 Apr 2023 02:37:51 +0300 Subject: [PATCH] SPU LLVM: fixup custom LICM pass --- rpcs3/Emu/Cell/SPURecompiler.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 03ac51d20f..d515acf4dc 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -5646,15 +5646,16 @@ public: auto succ = b2->block; - std::vector succ_q{b2->block}; + llvm::SmallSetVector succ_q; + succ_q.insert(b2->block); - for (usz j = 0; j < succ_q.size(); j++) + for (usz j = 0; j < 32 && j < succ_q.size(); j++) { if (!llvm::count(succ_range, (succ = succ_q[j]))) { for (auto pred : llvm::predecessors(succ)) { - succ_q.emplace_back(pred); + succ_q.insert(pred); } } else