Page MenuHomeSolus

Build with clang, re-enable cross-lang PGO and LTO
ClosedPublic

Authored by joebonrichie on Dec 18 2020, 1:09 PM.
Tags
None
Tokens
"Burninate" token, awarded by ermo."Burninate" token, awarded by livingsilver94."The World Burns" token, awarded by Staudey."Burninate" token, awarded by YakoYakoYokuYoku."Party Time" token, awarded by aleksvor."Love" token, awarded by Jacalz."Yellow Medal" token, awarded by algent.

Details

Summary

Packaging Changes

  • Use lld linker (required for cross-lang LTO)
  • Use libc++ instead of libstdc++ (firefox seems to require libc++ when building with clang now)

Performance

Resolves T8971.

Signed-off-by: Joey Riches <josephriches@gmail.com>

Test Plan

Browse as normal, verify performance improvement.

Diff Detail

Repository
R755 firefox
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

joebonrichie created this revision.Dec 18 2020, 1:09 PM
joebonrichie requested review of this revision.Dec 18 2020, 1:09 PM
ermo awarded a token.Dec 18 2020, 9:27 PM
ermo added a subscriber: ermo.

@joebonrichie :

Whoa. That's quite the improvement?! <3

serebit added a subscriber: serebit.EditedDec 19 2020, 9:01 PM

Got some benchmarks for you guys. Results are an average of 5 runs each with nothing in the background, and a restart between each set. All benchmarks are from JetStream 2, with some removed due to abnormally high variance. Tl;dr: Averages 6.9% improvement across all benchmarks run.

BenchmarkOriginalD10166ImprovementStatistically Significant?
3d-cube-SP164.1189.315.29%Yes
3d-raytrace-SP150.8151.90.76%No
acorn-wtb17185.96%Yes
ai-astar234.1234.20.01%No
Air18019810.00%Yes
babylon-wtb15.316.79.21%Yes
Basic168.7194.615.35%Yes
bomb-workers47.847.5-0.56%No
Box2D202.9212.94.95%Yes
cdjs47.453.913.61%Yes
chai-wtb38.545.317.78%Yes
coffeescript-wtb18.320.110.07%Yes
crypto492.7494.70.39%No
crypto-aes-SP226.8225.8-0.44%No
crypto-md5-SP140.1147.55.25%Yes
crypto-sha1-SP235.3237.81.07%No
date-format-tofte-SP65.182.326.39%Yes
delta-blue307.2304.8-0.78%No
FlightPlanner171.219916.29%Yes
float-mm.c1212-0.15%No
gaussian-blur356.1363.21.98%No
gbemu95.398.12.95%Yes
hash-map158.7164.53.63%Yes
HashSet-wasm1818.42.37%Yes
jshint-wtb2528.815.12%Yes
json-parse-inspector729227.78%Yes
json-stringify-inspector150.7161.57.19%Yes
lebab-wtb25.929.915.32%Yes
mandreel43.944.61.56%Yes
ML19.519.3-0.96%No
navier-stokes590.1589.8-0.05%No
octane-code-load661.8770.416.41%Yes
octane-zlib18.418.2-0.62%No
OfflineAssembler53.359.210.97%Yes
pdfjs73.276.13.96%Yes
prepack-wtb22.925.611.75%Yes
raytrace240.1243.31.35%No
regex-dna-SP419.4401.7-4.22%Yes
regexp290.9302.43.97%Yes
richards253.4251.4-0.77%No
segmentation20.921.21.31%No
stanford-crypto-aes265.1272.32.73%Yes
stanford-crypto-pbkdf2361.4396.39.66%Yes
stanford-crypto-sha256442.4456.33.14%Yes
string-unpack-code-SP189.6201.56.27%Yes
typescript6.46.86.56%Yes
uglify-js-wtb15.918.516.05%Yes
WSL0.470.518.37%Yes
joebonrichie planned changes to this revision.Dec 22 2020, 7:58 AM

accidentality took out ./mach buildsymbols (copy-pasta)

joebonrichie edited the summary of this revision. (Show Details)

Readd ./mach buildsymbols

JoshStrobl accepted this revision.Dec 23 2020, 5:07 PM
JoshStrobl added a subscriber: JoshStrobl.

LGTM, thanks!

This revision is now accepted and ready to land.Dec 23 2020, 5:07 PM
This revision was automatically updated to reflect the committed changes.