mirror of
https://github.com/ran-j/PS2Recomp.git
synced 2026-09-26 16:59:35 -04:00
93e221feaa
* feat: remove memory and pad from stub section * feat: add support for resume entry targets in CodeGenerator (this allow jumps in address outside function) feat: refactor entry point discovery one more try to reduce big generated file * feat: optmizations for release build * feat: remove unused file * feat: added some test cases for code gen * feat: added log macro and remove win specific code * feat: refactor runtime folder structure feat: added reset sound driver RPC state and compatibility layout feat: rename and added new test feat: update RPC calls to use defined constants feat: added more PSMC(16, 32) feat: change cd read to try find the asset ignoring case sensitive fix: fix some render problems feat: add logs on pad feat: added more RPC handles * feat: added game override for code veronica * feat: apply vita patch * feat: flags to disable build * feat: fix merges feat: break a lot of tests * feat: better throw error on empty cd path feat: remove recompiler unusde function feat: apply missing patch * feat: gamedp is now part of lib feat: missing file * feat: small cleanup * feat: missing vita changes * feat: fix more merge * feat: fix tests * feat: last missing feature * feat: added missing import * feat: rename test local functions * feat: init syscall on ps2 list * feat: added DMA helpers * feat: faster builds feat: more implement for darkcloud * feat: back missing file * feat: added missing includes * feat: remove test * feat: missing include * feat: read register funtion * feat: build fix * feat: force exit on detach thread
42 lines
1.5 KiB
CMake
42 lines
1.5 KiB
CMake
include(CheckIPOSupported)
|
|
|
|
check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_ERROR)
|
|
|
|
function(EnableFastReleaseMode TargetName)
|
|
message("> Enabling optimization for: ${TargetName}")
|
|
if(MSVC)
|
|
target_compile_options(${TargetName} PRIVATE
|
|
$<$<CONFIG:Release>:
|
|
/O2 # speed
|
|
/Ob2 # inline aggressively
|
|
/Oi # intrinsics
|
|
/GL # whole program opt
|
|
/Gy # function-level linking
|
|
/Gw # global data in COMDAT
|
|
/GF # string pooling
|
|
/Zc:inline # remove unreferenced inline
|
|
/fp:fast # fast math (graphics friendly)
|
|
/DNDEBUG
|
|
/arch:AVX2 # Advanced Vector Extensions 2
|
|
/GS- # Disable Buffer Security Check (faster)
|
|
/Qspectre- # Disable Spectre mitigations (faster)
|
|
>
|
|
)
|
|
|
|
if(TARGET ${TargetName})
|
|
target_link_options(${TargetName} PRIVATE
|
|
$<$<CONFIG:Release>:
|
|
/LTCG # link-time code generation
|
|
/OPT:REF # remove unreferenced
|
|
/OPT:ICF # fold identical COMDATs
|
|
>
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
if(IPO_SUPPORTED)
|
|
set_property(TARGET ${TargetName} PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)
|
|
else()
|
|
message(WARNING "Interprocedural optimization not supported: ${ipo_error}")
|
|
endif()
|
|
endfunction() |