From 51d2c9ce14f04aab2e0af7358b1bb83d5fc08ca1 Mon Sep 17 00:00:00 2001 From: Elad <18193363+elad335@users.noreply.github.com> Date: Mon, 1 Dec 2025 20:08:34 +0200 Subject: [PATCH 1/3] SPU LLVM: Always write function to cache --- rpcs3/Emu/Cell/SPULLVMRecompiler.cpp | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp index 989ba2e84f..a81fed8a95 100644 --- a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp @@ -1577,11 +1577,9 @@ public: return add_loc->compiled; } - bool add_to_file = false; - if (auto& cache = g_fxo->get(); cache && g_cfg.core.spu_cache && !add_loc->cached.exchange(1)) { - add_to_file = true; + cache.add(func); } { @@ -2815,14 +2813,6 @@ public: fs::write_file(m_spurt->get_cache_path() + "spu-ir.log", fs::write + fs::append, llvm_log); } - if (auto& cache = g_fxo->get()) - { - if (add_to_file) - { - cache.add(func); - } - } - fmt::throw_exception("Compilation failed"); } From 89699485d97587eeeb871385995c382db674da11 Mon Sep 17 00:00:00 2001 From: Elad <18193363+elad335@users.noreply.github.com> Date: Tue, 2 Dec 2025 08:12:37 +0200 Subject: [PATCH 2/3] Move code --- rpcs3/Emu/Cell/SPULLVMRecompiler.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp index a81fed8a95..2ec16a4184 100644 --- a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp @@ -1580,6 +1580,7 @@ public: if (auto& cache = g_fxo->get(); cache && g_cfg.core.spu_cache && !add_loc->cached.exchange(1)) { cache.add(func); + spu_log.success("New SPU block detected (size=%u)", func_size); } { @@ -2869,16 +2870,6 @@ public: asm("DSB ISH"); #endif - if (auto& cache = g_fxo->get()) - { - if (add_to_file) - { - cache.add(func); - } - - spu_log.success("New SPU block compiled successfully (size=%u)", func_size); - } - return fn; } From dee75543bd1ba04191885f8be89fc0c55f467934 Mon Sep 17 00:00:00 2001 From: Elad <18193363+elad335@users.noreply.github.com> Date: Tue, 2 Dec 2025 08:54:28 +0200 Subject: [PATCH 3/3] Remove add_to_file --- rpcs3/Emu/Cell/SPULLVMRecompiler.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp index 2ec16a4184..09dbe0939b 100644 --- a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp @@ -2842,14 +2842,6 @@ public: // Rebuild trampoline if necessary if (!m_spurt->rebuild_ubertrampoline(func.data[0])) { - if (auto& cache = g_fxo->get()) - { - if (add_to_file) - { - cache.add(func); - } - } - return nullptr; }