Generate a CacheIR spewer for JitSpew
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox77 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
Attachments
(6 files)
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 |
Now that we have CacheIROps.yaml and code generation for it (bug 1629791) we can use it to generate a text spewer for the warp-snapshots channel. Output looks like this:
IR:
GuardShape objId 0, shapeOffset 0
LoadEnclosingEnvironment objId 0, resultId 1
GuardShape objId 1, shapeOffset 8
LoadDynamicSlotResult objId 1, offsetOffset 16
TypeMonitorResult
We can also improve the JSON spewer a bit.
I also have various follow-up cleanups for bug 1629791 that I'll post here.
Assignee | ||
Comment 1•5 years ago
|
||
This was used for reused stub fields.
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D71899
Assignee | ||
Comment 3•5 years ago
|
||
"operand" is a bit confusing for this considering not all operands are OperandIds.
'args' matches CacheIROpFormat::ArgLengths.
Depends on D71900
Assignee | ||
Comment 4•5 years ago
|
||
This changes the JSON spewer to include a bit more information. I'm not sure if
this breaks anything that's actively being used, but it should be easy to fix.
Most of the enums are just converted to an integer, but we could now easily dump
a string representation for them like what we do for JSOp.
Hopefully this won't affect code size too much. JS_CACHEIR_SPEW is only defined in
debug and Nightly builds so there should be no effect on beta/release builds.
Depends on D71901
Assignee | ||
Comment 5•5 years ago
|
||
Depends on D71902
Assignee | ||
Comment 6•5 years ago
|
||
Define the lengths directly in the Python script. Make CacheIRWriter assert the
written arguments match this information to ensure everything stays in sync.
Depends on D71903
Updated•5 years ago
|
Comment 8•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4cd9de2b9ab1
https://hg.mozilla.org/mozilla-central/rev/80b904c34740
https://hg.mozilla.org/mozilla-central/rev/e96bc9140614
https://hg.mozilla.org/mozilla-central/rev/04b3647283a2
https://hg.mozilla.org/mozilla-central/rev/1b1a0b516762
https://hg.mozilla.org/mozilla-central/rev/1a37730d1bd1
Description
•