Author Topic: Stupid Optimisations  (Read 4027 times)

0 Members and 1 Guest are viewing this topic.

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
Release
Release SSE2
The PDBs:
Debug
Release
Release SSE2

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).
STRONGTEA. Why can't the x86 be sane?

 

Offline Sushi

  • Art Critic
  • 211
Linky no worky.

 

Offline Zacam

  • Magnificent Bastard
  • Administrator
  • 211
  • I go Sledge-O-Matic on Spammers
    • Minecraft
    • Steam
    • Twitter
    • ModDB Feature
Should worky just fine now.
Report MediaVP issues, now on the MediaVP Mantis! Read all about it Here!
Talk with the community on Discord
"If you can keep a level head in all this confusion, you just don't understand the situation"

¤[D+¬>

[08/01 16:53:11] <sigtau> EveningTea: I have decided that I am a 32-bit registerkin.  Pronouns are eax, ebx, ecx, edx.
[08/01 16:53:31] <EveningTea> dhauidahh
[08/01 16:53:32] <EveningTea> sak
[08/01 16:53:40] * EveningTea froths at the mouth
[08/01 16:53:40] <sigtau> i broke him, boys

 
Sorry guys - had a power cut this morning - forgot to start the dynamic IP daemon :P
It's working now.
« Last Edit: September 09, 2009, 10:29:45 pm by portej05 »
STRONGTEA. Why can't the x86 be sane?

 
Has anyone found any odd behaviour in these builds?
STRONGTEA. Why can't the x86 be sane?

 

Offline Sushi

  • Art Critic
  • 211
Has anyone found any odd behaviour in these builds?

No, although I only tested a couple of missions. I didn't notice any difference.

 

Offline Zacam

  • Magnificent Bastard
  • Administrator
  • 211
  • I go Sledge-O-Matic on Spammers
    • Minecraft
    • Steam
    • Twitter
    • ModDB Feature
Compiler warnings are now taking place when __assume is placed in pstypes.h

Code: [Select]
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.
Report MediaVP issues, now on the MediaVP Mantis! Read all about it Here!
Talk with the community on Discord
"If you can keep a level head in all this confusion, you just don't understand the situation"

¤[D+¬>

[08/01 16:53:11] <sigtau> EveningTea: I have decided that I am a 32-bit registerkin.  Pronouns are eax, ebx, ecx, edx.
[08/01 16:53:31] <EveningTea> dhauidahh
[08/01 16:53:32] <EveningTea> sak
[08/01 16:53:40] * EveningTea froths at the mouth
[08/01 16:53:40] <sigtau> i broke him, boys