Hello,
This spring we released a PC game, which was compiled with VC8's "link
time code generation" (aka "whole program optimization") enabled. It
made compiles significantly longer, but also produce significantly
better code - up to 25% better on some kinds of code.
Maybe a month or two before release, the to-be-released game was split
off in a separate branch in the source control repository, and
development continued on the "trunk". Since this development is many
months away from release, we didn't bother compiling builds with LTCG.
Now when I tried it, they crash right on startup in some absurd way
(e.g. on initializing a global, file-scope empty std::string
variable).
Probably I can find what caused the breaking of LTCG the hard way, by
doing a binary search of commits. I've heard anecdotes from other
developers that "LTCG is fragile". Can you share experience of things
that break it, and what to look for?
Best regards,
Assen
|