Closed
Bug 517127
Opened 15 years ago
Closed 15 years ago
specialize the add operator
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), enhancement, P3)
Tamarin Graveyard
Baseline JIT (CodegenLIR)
Tracking
(Not tracked)
VERIFIED
FIXED
flash10.1
People
(Reporter: edwsmith, Assigned: edwsmith)
References
Details
Attachments
(1 file, 3 obsolete files)
8.63 KB,
patch
|
stejohns
:
review+
|
Details | Diff | Splinter Review |
currently:
A:* + B:String => concatStrings(string(core,A), B)
proposed:
=> concat_any_str(A, B)
(more cases to be added here)
Assignee | ||
Comment 1•15 years ago
|
||
Verifier::emitToString() is a holdover from before the CodeWriter refactoring, and is only used by the jit.
This patch eliminates it; the type-sniffing optimizations it performed are pushed down into the jit, and consolidated.
the patch removes the extra cases for OP_esc_xattr, OP_esc_xelem, and OP_convert_s from writeOp1.
OP_concat still exists in the code but is dead (it's not a real opcode, it was just used in this bizarre codegen code). Will remove in a subsequent patch.
Assignee: nobody → edwsmith
Attachment #401208 -
Flags: review?(jodyer)
Assignee | ||
Comment 2•15 years ago
|
||
This completes the removal of internal opcode OP_concat. Note that op_concat has never been a real instruction in abc.
Attachment #401216 -
Flags: review?(jodyer)
Assignee | ||
Comment 3•15 years ago
|
||
This just moves code around and shouldn't affect what we generate. OP_add_d was never an opcode in ABC, this removes it from code and puts the numeric-add optimization logic further down in the jit. Where we can also specialize it further without dealing with the CodeWriter abstraction boundary.
Attachment #401220 -
Flags: review?(tharwood)
Updated•15 years ago
|
Attachment #401220 -
Flags: review?(tharwood) → review+
Assignee | ||
Updated•15 years ago
|
Attachment #401208 -
Flags: review?(tharwood)
Assignee | ||
Updated•15 years ago
|
Attachment #401216 -
Flags: review?(tharwood)
Comment 4•15 years ago
|
||
Comment on attachment 401208 [details] [diff] [review]
Refactor convert_s and add to avoid Verifier::emitToString
I'd find the straight STRING_TYPE, NUMBER_TYPE, and OBJECT_TYPE easier to read than st, nt, ot, but it's no biggie.
Attachment #401208 -
Flags: review?(tharwood) → review+
Updated•15 years ago
|
Attachment #401216 -
Flags: review?(tharwood) → review+
Assignee | ||
Comment 5•15 years ago
|
||
no prob, i'll put them back to STRING_TYPE, etc.
Assignee | ||
Updated•15 years ago
|
Attachment #401208 -
Attachment is obsolete: true
Attachment #401208 -
Flags: review?(jodyer)
Assignee | ||
Comment 6•15 years ago
|
||
Comment on attachment 401216 [details] [diff] [review]
removes vestiges of OP_concat
pushed http://hg.mozilla.org/tamarin-redux/rev/f7c22610e5ed
Attachment #401216 -
Attachment is obsolete: true
Attachment #401216 -
Flags: review?(jodyer)
Assignee | ||
Comment 7•15 years ago
|
||
Comment on attachment 401220 [details] [diff] [review]
Refactors numeric-add optimization into codegen block for OP_add, remove OP_add_d internal opcode.
pushed http://hg.mozilla.org/tamarin-redux/rev/71bbb71fd271
Assignee | ||
Updated•15 years ago
|
Attachment #401220 -
Attachment is obsolete: true
Assignee | ||
Comment 8•15 years ago
|
||
Apart from refactoring, the salient changes are:
* adds int-specialized case at the top of op_add
* op_add takes AvmCore* instead of toplevel; if XML objects are being
added, then the new xml object is constructed using the toplevel of
the XML objects passed in, instead of the toplevel of the caller.
(it seems totally arbitrary, and this saves me passing in an environment).
* boilerplate removed from jit code; we pass in AvmCore* instead of Toplevel*
Attachment #405557 -
Flags: review?(stejohns)
Updated•15 years ago
|
Attachment #405557 -
Flags: review?(stejohns) → review+
Assignee | ||
Comment 9•15 years ago
|
||
this patch is essentially done, and R+, but blocked by the 64-bit-int-atom-precision bug (bug 521353). landing this bug would make the other one more exposed, by letting it happen in jit code in addition to interpreter code.
opinions? should this bug be blocked by the other one or should it land anyway?
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: --- → flash10.1
Comment 10•15 years ago
|
||
(In reply to comment #9)
> opinions? should this bug be blocked by the other one or should it land
> anyway?
my vote: don't block it, go ahead and land it, and add notes to 521353 to indicate scope creep
Assignee | ||
Updated•15 years ago
|
Severity: normal → enhancement
OS: Mac OS X → All
Hardware: x86 → All
Assignee | ||
Comment 11•15 years ago
|
||
pushed two weeks ago
http://hg.mozilla.org/tamarin-redux/rev/31f739a0ac23
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•