Closed
Bug 640293
Opened 14 years ago
Closed 14 years ago
TI+JM: consider optimizing JSOP_NEG for known integers
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
(Whiteboard: fixed-in-jaegermonkey)
Attachments
(1 file)
(deleted),
patch
|
bhackett1024
:
review+
|
Details | Diff | Splinter Review |
Currently we generate a jump to an OOL path and generate an (unused) inline double path. I'll try to add an inline integer path for this and measure perf impact for micro-benchmarks and SS/V8/kraken. I'd also like to test compiling -x as x * -1.
JSOP_NEG with integer arg seems quite common, so we should make it as fast as possible.
Assignee | ||
Updated•14 years ago
|
Assignee: general → jandemooij
Status: NEW → ASSIGNED
Assignee | ||
Comment 1•14 years ago
|
||
This patch adds an inline integer path for known integers. It also optimizes the is-0 and is-MIN_INT checks to one test instruction (both have 31 lower bits zero). This passes jit-tests and jstests with -m -n -a.
For this micro-benchmark:
--
function f() {
var a = 0;
var t0 = new Date;
for(var i=1; i<10000000; i++) {
a = -i;
}
print(new Date - t0);
print(a);
}
f();
--
...these numbers:
d8: 52 ms
JM: 62 ms
TM: 27 ms
JM+TI (old): 39 ms
JM+TI (new): 17 ms
I don't think this helps SS/V8/Kraken much but I think it's worth the small amount of extra code, -int seems like a common thing to do. The code is also pretty straight-forward.
Attachment #520020 -
Flags: review?(bhackett1024)
Comment 2•14 years ago
|
||
Comment on attachment 520020 [details] [diff] [review]
Patch
Nice!
Attachment #520020 -
Flags: review?(bhackett1024) → review+
Comment 3•14 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: fixed-in-jaegermonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•