Closed
Bug 804636
Opened 11 years ago
Closed 11 years ago
Consider decomposing LOCAL/ARG inc/dec ops
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla19
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(4 files, 1 obsolete file)
41.13 KB,
patch
|
bhackett1024
:
review+
|
Details | Diff | Splinter Review |
4.29 KB,
patch
|
bhackett1024
:
review+
|
Details | Diff | Splinter Review |
7.75 KB,
patch
|
bhackett1024
:
review+
|
Details | Diff | Splinter Review |
6.42 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
Handling these in the JITs is quite complicated, especially with IonMonkey: compilation aborts if the input is not known to be int32/double, since we can't bailout in the middle of a MToInt32/MToDouble + MAdd sequence. Decomposing these like the other INC/DEC ops lets us remove at least 300 lines of code, mostly from the JITs. Main downside is that it increases bytecode size (4 to 15 ops).
Assignee | ||
Comment 1•11 years ago
|
||
(In reply to Jan de Mooij [:jandem] from comment #0) > > Main downside is that it increases > bytecode size (4 to 15 ops). Eh s/ops/bytes of course.
Assignee | ||
Comment 2•11 years ago
|
||
15 files changed, 31 insertions(+), 548 deletions(-) Will post another patch to remove the loop test analysis from LoopState, since this patch makes it useless.
Assignee: general → jdemooij
Status: NEW → ASSIGNED
Attachment #674401 -
Flags: review?(bhackett1024)
Assignee | ||
Updated•11 years ago
|
Blocks: BaselineCompiler
Assignee | ||
Comment 3•11 years ago
|
||
Just some minor changes.
Attachment #674401 -
Attachment is obsolete: true
Attachment #674401 -
Flags: review?(bhackett1024)
Attachment #675156 -
Flags: review?(bhackett1024)
Comment 4•11 years ago
|
||
Comment on attachment 675156 [details] [diff] [review] Part 1: Decompose LOCAL/ARG inc/dec, v2 Review of attachment 675156 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. Can you make sure though that this doesn't break the decompiler, so that the JIT inspector is still usable? Unfortunately I think the inspector is currently the only way to exercise the decompiler, so you'd need to use the addon a bit and make sure it behaves right on scripts with inc/dec ops.
Attachment #675156 -
Flags: review?(bhackett1024) → review+
Assignee | ||
Comment 5•11 years ago
|
||
I managed to make the decompiler work in the shell again, this patch fixes it.
Attachment #675300 -
Flags: review?(bhackett1024)
Updated•11 years ago
|
Attachment #675300 -
Flags: review?(bhackett1024) → review+
Assignee | ||
Comment 6•11 years ago
|
||
I will check some benchmarks before landing this.
Attachment #675605 -
Flags: review?(bhackett1024)
Updated•11 years ago
|
Attachment #675605 -
Flags: review?(bhackett1024) → review+
Assignee | ||
Comment 7•11 years ago
|
||
Part 1 + 2: https://hg.mozilla.org/integration/mozilla-inbound/rev/e4204b2b987c
Assignee | ||
Updated•11 years ago
|
Whiteboard: [leave open]
Assignee | ||
Comment 8•11 years ago
|
||
Removes another 65 lines I forgot in the first patch: TypeOracle::incslot and special handling for inc/dec ops in TypeDynamicResult.
Attachment #675836 -
Flags: review?(dvander)
Assignee | ||
Comment 9•11 years ago
|
||
Part 3: https://hg.mozilla.org/integration/mozilla-inbound/rev/43e09a8466c2
![]() |
||
Updated•11 years ago
|
Attachment #675836 -
Flags: review?(dvander) → review+
Comment 10•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/e4204b2b987c
Flags: in-testsuite-
Assignee | ||
Comment 12•11 years ago
|
||
And part 4: https://hg.mozilla.org/integration/mozilla-inbound/rev/a3dcaf02c5e5
Whiteboard: [leave open]
Comment 13•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/a3dcaf02c5e5
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
You need to log in
before you can comment on or make changes to this bug.
Description
•