Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Test Builds => Topic started by: portej05 on September 09, 2009, 12:28:26 pm
-
EXPERIMENTAL BUILD*!
In the interests of seeing how far we can push the compiler and optimiser to do our dirty work, I've produced the following two builds.
The real differences in these builds are the removal of global exception handling and the use of __assume within the Assert and Verify macros.
The issue with this is that it reduces preFAST noise, but if you continue through an Assert (not recommended) weird stuff may happen (tm) since various assumptions have been made by the compiler based on __assume.
These changes do not affect non-Windows VS2008 builds, so a patch has not been provided at this stage.
Assume gives the optimiser hints on what to expect at various places.
The builds:
Debug (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11d.exe)
Release (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11r.exe)
Release SSE2 (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11r_sse2.exe)
The PDBs:
Debug (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11d.pdb)
Release (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11r.pdb)
Release SSE2 (http://porteous.no-ip.org/FS2Files/stupidoptimisations/fs2_open_3_6_11r_sse2.pdb)
I'd love to hear if you find anything wrong/missing/broken/different from trunk :D (especially performance wise)
*The disclaimer: This may nuke your pilot files (it hasn't destroyed mine, but that's no guarantee).
-
Linky no worky.
-
Should worky just fine now.
-
Sorry guys - had a power cut this morning - forgot to start the dynamic IP daemon :P
It's working now.
-
Has anyone found any odd behaviour in these builds?
-
Has anyone found any odd behaviour in these builds?
No, although I only tested a couple of missions. I didn't notice any difference.
-
Compiler warnings are now taking place when __assume is placed in pstypes.h
5>d:\scp\builds\trunk\code\controlconfig\controlsconfigcommon.cpp(366) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\cfile\cfile.cpp(911) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\anim\packunpack.cpp(464) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\anim\packunpack.cpp(625) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\graphics\gropenglbmpman.cpp(173) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\graphics\grstub.cpp(471) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\globalincs\systemvars.cpp(124) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\math\vecmat.cpp(828) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\sound\ds.cpp(389) : warning C4702: unreachable code
5>d:\scp\builds\trunk\code\localization\localize.cpp(1157) : warning C4702: unreachable code
Near as I can determine, there is no legitimate reason for any of these to be unreachable.