Closed
Bug 1511747
Opened 6 years ago
Closed 4 years ago
Remove ICEntry::pcOffset, shrink ICEntry to one word
Categories
(Core :: JavaScript Engine, enhancement, P3)
Core
JavaScript Engine
Tracking
()
RESOLVED
DUPLICATE
of bug 1682504
People
(Reporter: jandem, Unassigned)
References
Details
ICScript has an array of ICEntries. ICEntry stores an IC stub pointer + uint32_t pcOffset. We should consider splitting this in two arrays (maybe ICEntry could stay and we just move the pcOffset field into a new pcOffsets array).
Benefits are:
(1) Uses less memory on 64-bit because we don't waste 4 bytes per entry for padding.
(2) Better cache locality: ICEntry's firstStub field is hot when running Baseline code but the pcoffset field is less hot.
Updated•6 years ago
|
Priority: -- → P3
Reporter | ||
Comment 1•6 years ago
|
||
Hey Iain, can we remove the crash instrumentation we added to ICEntry? I'd like to shrink ICEntry to just one word, the first IC stub. (In addition to what's in comment 0, it will let us fold a shift instruction in the Baseline Interpreter into a LEA instruction...)
(Also instead of the second array I think I'll add pcOffset to the fallback stub instead and change the ICEntry* field there to icEntryIndex. We can remove lastStubPtrAddr_ too...)
Flags: needinfo?(iireland)
Reporter | ||
Updated•6 years ago
|
Summary: Consider splitting ICEntry array in two arrays → Remove ICEntry::pcOffset, shrink ICEntry to one word
Comment 2•6 years ago
|
||
Yes, the ICEntry instrumentation can go. Ted and I looked through the results of that experiment a few weeks ago, and found nothing but bit-flips.
Flags: needinfo?(iireland)
Reporter | ||
Comment 3•4 years ago
|
||
Bug 1682504 is probably the best way to do this.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•