Closed
Bug 825447
Opened 12 years ago
Closed 12 years ago
IonMonkey: Populate safepoints directly in backtracking allocator
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla20
People
(Reporter: bhackett1024, Unassigned)
References
Details
Attachments
(1 file)
12.26 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
Currently, the backtracking allocator uses the AllocationIntegrityState to compute the live registers and stack slots for each safepoint. This was done for simplicity while developing the allocator, but slows down the allocator tremendously and needs to be fixed. The backtracking allocator currently takes several times as long as LSRA (6x on v8-v7); cutting the use of AllocationIntegrityState reduces time so that backtracking is 1.5x to 2x slower than LSRA.
Attachment #696522 -
Flags: review?(jdemooij)
Comment 1•12 years ago
|
||
Comment on attachment 696522 [details] [diff] [review] patch Review of attachment 696522 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/ion/BacktrackingAllocator.cpp @@ +1046,5 @@ > + break; > + > + // Find the furthest endpoint. > + size_t lastInterval = reg->numIntervals() - 1; > + CodePosition end = reg->getInterval(lastInterval)->end(); Intervals used by the backtracking allocator can overlap right? Is the first interval still guaranteed to start before all other intervals, and the last interval ends after all other intervals? Maybe add a comment/assert.
Attachment #696522 -
Flags: review?(jdemooij) → review+
Reporter | ||
Comment 2•12 years ago
|
||
Good catch, yeah, that could cause safepoints to not be fully populated. https://hg.mozilla.org/integration/mozilla-inbound/rev/663bfe4a4c2c
Comment 3•12 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/663bfe4a4c2c
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
You need to log in
before you can comment on or make changes to this bug.
Description
•