rpcs3
rpcs3 copied to clipboard
[Experimental] PPU LLVM: Recycle identical functions
I noticed that more then 40% of functions examined in some executables, occur more than once throughout the executable. So, why not reuse their code when possible in order to reduce compilation and link time? There are some exceptions, not all identical functions are truly identical in meaning if they are located elsewhere so I also check if they contain any relative branch that tragets external code. (which changes the meaning of the function)
Edit: because of the spectacular bugs I created when debugging this PR, I discovered a bug in sys_prx_stop_module that is fixed here. (turns it it can abort an ongoing starting process of PRX)
Who wants to test MGS4 compilation time and link time (Applying PPU code)?
@elad335 My Compile FW FULL SPEED 14600KF Thanks Brow !!!!!
Failed to boot gt6 ·F 0:00:07.613961 {PPU[0x1000000] Thread (main_thread) [liblv2: 0x00284e60]} VM: Access violation reading location 0x2f646576 (unmapped memory) RPCS3.log
Test all games Bug Boot
RPCS3.log