Get GTests working on Windows PGO builds

NEW
Unassigned

Status

Testing
General
a year ago
a year ago

People

(Reporter: RyanVM, Unassigned)

Tracking

Version 3
Unspecified
All
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

a year ago
GTests on Windows PGO builds are currently broken and hidden on Treeherder. My understanding is that this was an intentional decision made to avoid lengthening the already-long PGO build times due to having to link everything twice.

The big trade-off to this decision is that it leaves us with effectively zero Windows opt GTest coverage on the release branches. On the builds that go out to 90+% of our users. Which seems like a Bad thing.

Now that we've clawed back a lot of PGO build time wins, I think we should revisit the earlier decision and consider re-enabling them.
I'm not entirely sure this will be useful, to be honest. The problem is that xul.dll and xul-gtest.dll *are not the same binary*. When we re-link xul.dll using the profiling info, we can't use that same profiling info to re-link xul-gtest.dll, it's just not valid for that binary. That means that we'd wind up re-linking xul-gtest.dll and generating different code than exists in xul.dll, so the tests wouldn't actually test anything meaningful anyway.

Unfortunately this is a hard problem and I don't know a way to solve it.
(Reporter)

Comment 2

a year ago
For perpetuity's sake, it may be worth trying to get MSVC to use the xul.pgd files for xul-gtest.dll.
https://msdn.microsoft.com/en-us/library/438sd1tf.aspx

Not sure if that'd actually work in practice, but in theory that would at least give us reasonably-comparable end results for both DLLs.
You need to log in before you can comment on or make changes to this bug.