Investigate /d2guardswtablesuppress flag in MSVC 15.5.3

NEW
Unassigned

Status

()

defect
P5
normal
2 years ago
Last year

People

(Reporter: tjr, Unassigned)

Tracking

(Depends on 1 bug, Blocks 1 bug, {sec-audit})

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

MSVC just put out an undocumented /d2guardswtablesuppress flag which implements switches without jump tables, removing some indirect calls. This has benefits for Spectre and CFG.

Try run: https://treeherder.mozilla.org/#/jobs?repo=try&revision=752b951751a321e05fd5b3451ff467abebe76d16
Perf results are in: https://treeherder.mozilla.org/perf.html#/compare?originalProject=mozilla-central&newProject=try&newRevision=752b951751a321e05fd5b3451ff467abebe76d16&framework=1&selectedTimeRange=172800

Kind of a mixed bag. There are a few small wins (mostly from upgrading the compiler I believe), similar to guardspecload in Bug 1429807. But there are a few sizable losses (4-11%) on some tests. 

And then there's the CRAZY regressions (40%) on tp6 google.
It would be interesting to enable this and see what it does to JS performance when the JITs are disabled (via javascript.options.ion/baselinejit = false) thus measuring interpreter perf, which is one big switch in a loop.
No longer depends on: 1430696
You need to log in before you can comment on or make changes to this bug.