Closed Bug 826741 Opened 11 years ago Closed 9 years ago

IonMonkey: Enable backtracking allocator by default


(Core :: JavaScript Engine: JIT, defect)

Other Branch
Not set



Tracking Status
firefox39 --- fixed


(Reporter: bhackett1024, Assigned: bhackett1024)


(Depends on 2 open bugs)



(1 file)

With the patch in bug 826734, Ion does a little better on x86 benchmarks when using the backtracking allocator instead of lsra (1-2% v8/kraken improvement, smaller for ss) and the backtracking allocator significantly reduces the amount of spill code executed for both x86 and x64.  This improvement isn't gigantic, but will become larger as the benchmarks are optimized further and using a better allocator will be important for autotranslated code (emscripten/asm.js).  Enabling the backtracking allocator by default can be done after taking a couple steps:

- Examine ARM performance.  The allocator hasn't had any ARM tuning and with the current state of the ARM assembler it isn't possible I think to easily examine the generated ARM code and make improvements.  If the allocator does not do a good job on ARM out of the box, it could still be the default for x86/x64 until the assembler is fixed and regalloc issues diagnosed.

- Fuzzing.  This can wait until after bug 826734 lands.
Depends on: 826734
Working on fuzzing this now (mozilla-central with --ion-regalloc=backtracking).
Depends on: 864919
Depends on: 865024
Depends on: 865031
Depends on: 900437
This configuration/flag is now being tested continuously on fuzzer-linux7.
Closed: 11 years ago
Resolution: --- → FIXED
Nice, this was meant for bug 864919.
Resolution: FIXED → ---
Depends on: 914141
Depends on: 921263
Depends on: 923799
Depends on: 931487
Depends on: 932465
Depends on: 936891
Depends on: 924920
Depends on: 926904
Depends on: 938468
Blocks: 939893
No longer blocks: 939893
Depends on: 939893
Depends on: 948838
Depends on: 983752
Depends on: 1030378
Assignee: general → nobody
Depends on: 1063603
Depends on: 1067610
Depends on: 1071403
Depends on: 1066659
I asked Hannes to add a Backtracking line on AWFY for the Mac shell builds, so hopefully we will have some useful numbers soon. Once we have that we can decide which tests need to be fixed before we can enable BT by default.

Locally I no longer see the Octane-Gameboy regression (bug 1063603). BT is a bit faster there now so that's great, but overall it's still slower on Octane.
Component: JavaScript Engine → JavaScript Engine: JIT
OS: Mac OS X → All
Hardware: x86 → All
Depends on: 1102843
Depends on: 999538
See Also: → 934502
Blocks: 1112641
Depends on: 934502
See Also: 934502
Depends on: 1123874
Blocks: 1124002
Depends on: 1124377
Depends on: 1127908
Depends on: 1132904
Depends on: 1134510
Attached patch patchSplinter Review
Not all regressions with the backtracking allocator have been fixed (mainly bug 1134510), but its performance on octane and the other benchmarks we track is pretty much in line with LSRA, and it would be good to turn it on by default after the merge tomorrow, before doing more work to improve it in the next release cycle.
Assignee: nobody → bhackett1024
Attachment #8568114 - Flags: review?(jdemooij)
Depends on: 1135834
Comment on attachment 8568114 [details] [diff] [review]

Review of attachment 8568114 [details] [diff] [review]:

Attachment #8568114 - Flags: review?(jdemooij) → review+
Closed: 11 years ago9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
Blocks: 1136898
Depends on: 1139466
You need to log in before you can comment on or make changes to this bug.