Closed Bug 1494671 Opened Last year Closed Last year

2.48 - 80.89% compiler_metrics num_static_constructors (linux64) regression on push 712cd59c243762c23248cc07c6fcf300fa2bf65a (Wed Sep 26 2018)

Categories

(Core :: Graphics: Layers, defect)

x86_64
Linux
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla64
Tracking Status
firefox-esr60 --- unaffected
firefox62 --- unaffected
firefox63 --- unaffected
firefox64 --- fixed

People

(Reporter: igoldan, Assigned: botond)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(2 files)

We have detected a build metrics regression from push:

https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=126409bdf326645e735ee147bd70bd7d09759165&tochange=712cd59c243762c23248cc07c6fcf300fa2bf65a

As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

 81%  compiler_metrics num_static_constructors linux64 debug base-toolchains     246.00 -> 445.00
 80%  compiler_metrics num_static_constructors linux64 debug fuzzing             248.00 -> 447.00
  2%  compiler_metrics num_static_constructors linux64 opt base-toolchains       121.00 -> 124.00


You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=16187

On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the jobs in a pushlog format.

To learn more about the regressing test(s), please see: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing/Build_Metrics
Component: General → Graphics: Layers
Product: Testing → Core
Target Milestone: --- → mozilla64
Flags: needinfo?(botond)
Presumably that's from:

https://hg.mozilla.org/integration/mozilla-inbound/rev/712cd59c2437#l8.78

injecting a bunch of static constructors from these defined-in-the-header EnumSets.

We can either move the actual definitions to a C++ file (which still keeps a static constructor, but at least avoids them spreading) or make a lot of things `constexpr`.
Making relatively few things `constexpr` seems to work for me locally:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=f228ae3302334a569ea2b08ff192a42dd3d5fbfb
Assignee: nobody → botond
Flags: needinfo?(botond)
(In reply to Botond Ballo [:botond] from comment #2)
> Making relatively few things `constexpr` seems to work for me locally:
> 
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=f228ae3302334a569ea2b08ff192a42dd3d5fbfb

Hmm, clang-6 in automation seems significantly less happy than my local clang-5.
Hmm, my local build succeeds with clang-6 as well. I wonder what the difference is between my local setup and automation that gives rise to the constexpr-related errors seen in that Try push.
(In reply to Botond Ballo [:botond] from comment #4)
> Hmm, my local build succeeds with clang-6 as well. I wonder what the
> difference is between my local setup and automation that gives rise to the
> constexpr-related errors seen in that Try push.

Looks like the difference is related to the clang static analysis plugin (which I wasn't running locally).
Comment on attachment 9013396 [details]
Bug 1494671 - Make MOZ_AssertAssignmentTest() constexpr. r?froydnj

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9013396 - Flags: review+
Comment on attachment 9013397 [details]
Bug 1494671 - Make the CompositorHitTestInfo globals constexpr. r?froydnj

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9013397 - Flags: review+
Pushed by bballo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/dd9071744c9f
Make MOZ_AssertAssignmentTest() constexpr. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/8fb46c61e091
Make the CompositorHitTestInfo globals constexpr. r=froydnj

I confirm this got entirely fixed! \0/

== Change summary for alert #19330 (as of Wed, 13 Feb 2019 08:12:34 GMT) ==

Improvements:

45% compiler_metrics num_static_constructors linux64 debug base-toolchains 446.00 -> 247.00
44% compiler_metrics num_static_constructors linux64 debug fuzzing 448.00 -> 249.00
2% compiler_metrics num_static_constructors linux64 opt base-toolchains 125.00 -> 122.00

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=19330

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.