RESOLVED FIXED156607
We should support delete in the DFG
https://bugs.webkit.org/show_bug.cgi?id=156607
Summary We should support delete in the DFG
Keith Miller
Reported 2016-04-14 16:11:49 PDT
We should support delete in the DFG
Attachments
Patch (25.79 KB, patch)
2016-04-14 22:23 PDT, Keith Miller
no flags
Benchmark results (70.78 KB, text/plain)
2016-04-14 22:26 PDT, Keith Miller
no flags
Patch for landing (26.04 KB, patch)
2016-04-18 12:05 PDT, Keith Miller
no flags
Patch for landing (26.04 KB, patch)
2016-04-18 12:10 PDT, Keith Miller
no flags
Keith Miller
Comment 1 2016-04-14 22:23:10 PDT
Keith Miller
Comment 2 2016-04-14 22:26:41 PDT
Created attachment 276461 [details] Benchmark results
Keith Miller
Comment 3 2016-04-14 22:27:46 PDT
I also tested this on a custom micro benchmark: function test(condition) { if (condition) delete base.id; let result = []; for (let i = 0; i < 100; i++) result.push(i); return result; } noInline(test); for (i = 0; i < 100000; i++) test(false); And got: delete-by-id 176.3282+-2.1856 ^ 40.1055+-0.4254 ^ definitely 4.3966x faster
Benjamin Poulain
Comment 4 2016-04-15 16:37:15 PDT
Comment on attachment 276460 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=276460&action=review > Source/JavaScriptCore/jit/JITPropertyAccess.cpp:533 > + emitTagBool(returnValueGPR); I am not a fan of the change JSValue->bool. The biggest problem of baseline JIT is binary size. We should instead go in the direction of making those load-store part of the slow path, not outside.
Keith Miller
Comment 5 2016-04-18 12:05:30 PDT
Created attachment 276651 [details] Patch for landing
Keith Miller
Comment 6 2016-04-18 12:10:23 PDT
Created attachment 276655 [details] Patch for landing
Keith Miller
Comment 7 2016-04-18 12:12:02 PDT
Comment on attachment 276460 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=276460&action=review >> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:533 >> + emitTagBool(returnValueGPR); > > I am not a fan of the change JSValue->bool. > > The biggest problem of baseline JIT is binary size. We should instead go in the direction of making those load-store part of the slow path, not outside. Fixed. I created a second operation that returns the EncodedValue for the baseline.
WebKit Commit Bot
Comment 8 2016-04-18 13:02:10 PDT
Comment on attachment 276655 [details] Patch for landing Clearing flags on attachment: 276655 Committed r199683: <http://trac.webkit.org/changeset/199683>
WebKit Commit Bot
Comment 9 2016-04-18 13:02:13 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.