[Webkit-unassigned] [Bug 17510] Acid3 test 26 takes >33ms
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 26 15:58:07 PDT 2008
http://bugs.webkit.org/show_bug.cgi?id=17510
------- Comment #40 from mjs at apple.com 2008-05-26 15:58 PDT -------
(In reply to comment #39)
> As for E, I believe that type specialization in the bytecode engine would
> naturally remove all string wrappers created by
>
> "iteration " + i + " at " + d
>
> Since "iteration" and " at " are known strings at compile time, we know that
> this expression is a string add, so i and d should produce strings, not generic
> values.
i and d have to produce generic values first because they have to go through
toString/valueOf. d in particular has a custom toString() function in this
case, so that's not just a theoretical issue. This approach would in theory be
able to remove the same temporary wrappers as my proposed multi-concatenation
opcode, but not the UString temporaries. So I think optimizing multiple
concatenations might be worthwhile even when we have type specialization.
> We would still need to create a string wrapper for the sake of calling
> createTextNode, though. Specializing for the expected types of arbitrary DOM
> APIs would be very hard. (I'm not even sure how we would do that.)
If registers are type-coded in an obvious way, then it could still be a UString
in the arguments vector. However, UString is problematic to use in register
values at all because of the refcounting. Unlike primitive values or JSValue*,
when a register containing such a value is killed we'd have to deref.
--
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list