RESOLVED FIXED 65146
DFG non-speculative JIT emits obviously inefficient code for arithmetic where one operand is a constant
https://bugs.webkit.org/show_bug.cgi?id=65146
Summary DFG non-speculative JIT emits obviously inefficient code for arithmetic where...
Filip Pizlo
Reported 2011-07-25 16:01:02 PDT
The DFG non-speculative JIT uses C function calls as non-integer or overflow-handling slow-paths for arithmetic against constants. This is obviously inefficient, since the code will almost always see a number in the non-constant operand, and emitting int-to-double conversion (or double unboxing) followed by double arithmetic is both faster and likely involves less code than a C call.
Attachments
the patch (5.31 KB, patch)
2011-07-25 16:40 PDT, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2011-07-25 16:40:40 PDT
Created attachment 101942 [details] the patch
Gavin Barraclough
Comment 2 2011-07-25 16:47:12 PDT
Comment on attachment 101942 [details] the patch I guess we might want to also be able inline double code for ValueAdd too at some point.
Filip Pizlo
Comment 3 2011-07-25 16:48:23 PDT
(In reply to comment #2) > (From update of attachment 101942 [details]) > I guess we might want to also be able inline double code for ValueAdd too at some point. Indeed, and I think that we're actually hitting that slow path in Kraken.
WebKit Review Bot
Comment 4 2011-07-25 18:05:01 PDT
Comment on attachment 101942 [details] the patch Clearing flags on attachment: 101942 Committed r91734: <http://trac.webkit.org/changeset/91734>
WebKit Review Bot
Comment 5 2011-07-25 18:05:05 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.