Closed
Bug 1141104
Opened 9 years ago
Closed 2 years ago
Support INIT_THIN_INLINE in LSubstr
Categories
(Core :: JavaScript Engine: JIT, defect, P5)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
105 Branch
Tracking | Status | |
---|---|---|
firefox105 | --- | fixed |
People
(Reporter: h4writer, Assigned: jandem)
Details
Attachments
(2 files, 1 obsolete file)
3.36 KB,
patch
|
Details | Diff | Splinter Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
bug 1119081 comment 5 Note: I tried to use CreateDependentString in LSubstr when implementing. The only issue is that LSubstr is very constrained with it registers making it possible to squeeze some more perf. out of it. Using CreateDependentString would mean introducing an push/pop to create an extra register (in x86, since we are out of registers with sps enabled).
Reporter | ||
Comment 1•9 years ago
|
||
Assignee: nobody → hv1989
Attachment #8574692 -
Flags: review?(jdemooij)
Reporter | ||
Comment 2•9 years ago
|
||
Comment on attachment 8574692 [details] [diff] [review] Patch Review of attachment 8574692 [details] [diff] [review]: ----------------------------------------------------------------- I think I made a minor mistake. So clearing review for now.
Attachment #8574692 -
Flags: review?(jdemooij)
Reporter | ||
Comment 3•9 years ago
|
||
Test for INIT_FAT_INLINE_FLAGS instead of INIT_THIN_INLINE_FLAGS, since INIT_FAT_INLINE_FLAGS = INIT_THIN_INLINE_FLAGS | JS_BIT(4)
Attachment #8574692 -
Attachment is obsolete: true
Attachment #8574724 -
Flags: review?(jdemooij)
Assignee | ||
Comment 4•9 years ago
|
||
Comment on attachment 8574724 [details] [diff] [review] Patch Review of attachment 8574724 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jit/CodeGenerator.cpp @@ +5884,5 @@ > masm.branchTest32(Assembler::Zero, stringFlags, Imm32(JSString::INLINE_CHARS_BIT), ¬Inline); > + > + Label createThinInline, next; > + masm.branchTest32(Assembler::Zero, stringFlags, Imm32(JSString::INIT_FAT_INLINE_FLAGS), > + &createThinInline); If we have a thin inline string, this will be NonZero as well because some of the flags in INIT_FAT_INLINE_FLAGS will be set. I think it'd be nice to use the length-register, because a substring of a non-inline string will often fit in an inline string and a FatInlineString will often have a ThinInlineString substring. I didn't check but I expect that's what the C++ code does too.
Attachment #8574724 -
Flags: review?(jdemooij)
Assignee | ||
Updated•8 years ago
|
Priority: -- → P5
Comment 5•2 years ago
|
||
The bug assignee is inactive on Bugzilla, so the assignee is being reset.
Assignee: hv1989 → nobody
Assignee | ||
Updated•2 years ago
|
Flags: needinfo?(jdemooij)
Assignee | ||
Comment 6•2 years ago
|
||
We were allocating fat inline strings iff the base string is an inline string.
The patch changes this to be based on the length instead, so that we use inline
strings in a lot more cases. We now also allocate thin inline strings when possible.
This matches the C++ version of this code better.
Updated•2 years ago
|
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Assignee | ||
Updated•2 years ago
|
Flags: needinfo?(jdemooij)
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/dddf6ad9ce42 Use inline strings more in LSubstr codegen to match SubstringKernel better . r=anba
Comment 8•2 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
status-firefox105:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 105 Branch
You need to log in
before you can comment on or make changes to this bug.
Description
•