Provide PGO builds of clang
Categories
(Firefox Build System :: General, defect)
Tracking
(firefox77 fixed)
Tracking | Status | |
---|---|---|
firefox77 | --- | fixed |
People
(Reporter: erahm, Assigned: away)
References
Details
Attachments
(7 files, 1 obsolete file)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Comment 1•8 years ago
|
||
Reporter | ||
Comment 2•8 years ago
|
||
Updated•7 years ago
|
Comment 3•7 years ago
|
||
Comment 4•7 years ago
|
||
Updated•5 years ago
|
Comment 5•5 years ago
|
||
Some benchs for llvm 9 with lto/pgo:
https://gist.github.com/nathanchance/7bc40942ac0a86490e692b63345e6f6a
Separating out the mechanical/"boring" changes to make the next patch more clear. This patch adds the ability to build a fourth stage that for now doesn't do anything special.
I changed to using >=
to make it more obvious that e.g. "here is what's going to happen for stage 2" -- the off-by-one was too hard on my brain.
Updated•5 years ago
|
Separating out the mechanical/"boring" changes to make the next patch more clear. This patch adds the ability to build a fourth stage that for now doesn't do anything special.
I changed to using >= to make it more obvious that e.g. "here is what's going to happen for stage 2" -- the off-by-one was too hard on my brain.
This adds the ability to do four-stage PGO builds. This was surprisingly straightforward thanks to PGO being a well-supported scenario in LLVM's cmake.
For reference, the stages are:
stage1: Initial build with gcc
stage2: Instrumented build using stage1
stage3: Train by using the instrumented stage2 to build the clang tree
stage4: Optimize using the stage3 compiler and the profdata created with it
Depends on D69079
Otherwise, PGO builds would fail to find asan at stage2 because the instrumented build uses LLVM_BUILD_RUNTIME=No
.
Depends on D69080
Assignee | ||
Comment 10•5 years ago
|
||
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D69083
Assignee | ||
Comment 12•5 years ago
|
||
Assignee | ||
Comment 13•5 years ago
|
||
This will partially atone for making builds longer with PGO.
Depends on D69618
Comment 14•5 years ago
|
||
Comment 15•5 years ago
|
||
Backed out 7 changesets for causing bpgo failures.
Backout link: https://hg.mozilla.org/integration/autoland/rev/670150d0ab6626a805f6a1be61531c01bbdbc8be
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=296609765&repo=autoland&lineNumber=4185
Comment 16•5 years ago
|
||
Comment 17•5 years ago
|
||
== Change summary for alert #25582 (as of Thu, 09 Apr 2020 02:25:56 GMT) ==
Improvements:
9% build times linux64 debug plain taskcluster-c5.4xlarge 1,339.46 -> 1,213.62
9% build times linux64 debug plain taskcluster-m5.4xlarge 1,407.98 -> 1,277.07
9% build times linux64 debug plain taskcluster-c5d.4xlarge 1,316.49 -> 1,203.20
8% build times windows2012-64 debug plain taskcluster-c4.4xlarge 2,679.84 -> 2,466.41
7% build times windows2012-aarch64 opt aarch64-no-eme nightly taskcluster-c5.4xlarge 2,287.62 -> 2,132.88
6% build times windows2012-32-shippable opt nightly taskcluster-c5d.4xlarge 2,266.06 -> 2,131.84
6% build times windows2012-aarch64 opt aarch64-no-eme nightly taskcluster-m5.4xlarge 2,393.91 -> 2,255.14
5% build times android-5-0-aarch64 pgo taskcluster-m5.4xlarge 2,350.24 -> 2,234.64
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=25582
Comment 18•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/084f9e2cdb83
https://hg.mozilla.org/mozilla-central/rev/f4874ffeac44
https://hg.mozilla.org/mozilla-central/rev/4f67a5a67abf
https://hg.mozilla.org/mozilla-central/rev/3129eeee4887
https://hg.mozilla.org/mozilla-central/rev/21780faba92c
https://hg.mozilla.org/mozilla-central/rev/475d78d8da12
https://hg.mozilla.org/mozilla-central/rev/f7432af8daf3
Comment 19•5 years ago
|
||
(In reply to Alexandru Ionescu :alexandrui (needinfo me) from comment #17)
== Change summary for alert #25582 (as of Thu, 09 Apr 2020 02:25:56 GMT) ==
Improvements:
9% build times linux64 debug plain taskcluster-c5.4xlarge 1,339.46 -> 1,213.62
9% build times linux64 debug plain taskcluster-m5.4xlarge 1,407.98 -> 1,277.07
9% build times linux64 debug plain taskcluster-c5d.4xlarge 1,316.49 -> 1,203.20
8% build times windows2012-64 debug plain taskcluster-c4.4xlarge 2,679.84 -> 2,466.41
7% build times windows2012-aarch64 opt aarch64-no-eme nightly taskcluster-c5.4xlarge 2,287.62 -> 2,132.88
6% build times windows2012-32-shippable opt nightly taskcluster-c5d.4xlarge 2,266.06 -> 2,131.84
6% build times windows2012-aarch64 opt aarch64-no-eme nightly taskcluster-m5.4xlarge 2,393.91 -> 2,255.14
5% build times android-5-0-aarch64 pgo taskcluster-m5.4xlarge 2,350.24 -> 2,234.64For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=25582
Congrats!
Comment 20•5 years ago
•
|
||
(it's reassuring that this matches our experiments!)
Description
•