RESOLVED FIXED 97288
JSC should infer when indexed storage is contiguous, and optimize for it
https://bugs.webkit.org/show_bug.cgi?id=97288
Summary JSC should infer when indexed storage is contiguous, and optimize for it
Filip Pizlo
Reported 2012-09-20 20:47:27 PDT
Monster work in progress patch coming soon to an attachment near you.
Attachments
it begins (58.91 KB, patch)
2012-09-20 20:51 PDT, Filip Pizlo
no flags
it has more things (89.55 KB, patch)
2012-09-23 16:41 PDT, Filip Pizlo
no flags
patching is done (105.28 KB, patch)
2012-09-23 20:15 PDT, Filip Pizlo
no flags
dfg stuff has begun (126.65 KB, patch)
2012-09-25 00:37 PDT, Filip Pizlo
no flags
more (156.16 KB, patch)
2012-09-26 01:20 PDT, Filip Pizlo
no flags
almost there! (173.34 KB, patch)
2012-09-26 11:32 PDT, Filip Pizlo
no flags
fixing things (195.10 KB, patch)
2012-09-26 13:25 PDT, Filip Pizlo
no flags
it compiles! (200.05 KB, patch)
2012-09-27 00:17 PDT, Filip Pizlo
no flags
sunspider runs (221.53 KB, patch)
2012-09-29 17:56 PDT, Filip Pizlo
no flags
it sort of works (224.65 KB, patch)
2012-09-29 23:14 PDT, Filip Pizlo
no flags
new approach: holy contiguous (247.63 KB, patch)
2012-09-30 18:07 PDT, Filip Pizlo
no flags
I think it's done (holy contiguous) (246.87 KB, patch)
2012-09-30 18:34 PDT, Filip Pizlo
no flags
it compiles (holy contiguous) (238.88 KB, patch)
2012-09-30 20:24 PDT, Filip Pizlo
no flags
it works on 64-bit, starting to make it work on 32-bit (255.48 KB, patch)
2012-10-04 19:46 PDT, Filip Pizlo
no flags
the patch, possibly (299.14 KB, patch)
2012-10-04 21:56 PDT, Filip Pizlo
no flags
the patch (303.71 KB, patch)
2012-10-06 15:32 PDT, Filip Pizlo
ggaren: review-
webkit-ews: commit-queue-
the patch (306.15 KB, patch)
2012-10-07 22:03 PDT, Filip Pizlo
webkit-ews: commit-queue-
the patch (311.78 KB, patch)
2012-10-08 00:10 PDT, Filip Pizlo
gyuyoung.kim: commit-queue-
the patch (311.80 KB, patch)
2012-10-08 01:03 PDT, Filip Pizlo
webkit-ews: commit-queue-
the patch (312.02 KB, patch)
2012-10-08 13:45 PDT, Filip Pizlo
buildbot: commit-queue-
the patch (312.14 KB, patch)
2012-10-08 16:51 PDT, Filip Pizlo
mhahnenberg: review+
buildbot: commit-queue-
patch for landing (312.81 KB, patch)
2012-10-09 14:08 PDT, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2012-09-20 20:51:45 PDT
Created attachment 165040 [details] it begins
Filip Pizlo
Comment 2 2012-09-23 16:41:55 PDT
Created attachment 165296 [details] it has more things Patchable get_by_val's in the baseline JIT. They're no fun.
Filip Pizlo
Comment 3 2012-09-23 20:15:35 PDT
Created attachment 165304 [details] patching is done get_by_val/put_by_val patching is done. still need to pull this through the DFG.
Filip Pizlo
Comment 4 2012-09-25 00:37:37 PDT
Created attachment 165542 [details] dfg stuff has begun
Filip Pizlo
Comment 5 2012-09-26 01:20:27 PDT
Created attachment 165747 [details] more Wrote a bunch of the DFG code. Not done yet.
Filip Pizlo
Comment 6 2012-09-26 11:32:34 PDT
Created attachment 165838 [details] almost there! Code is written but it hasn't been compiled or tested. Oh, and I haven't done anything about 32-bit yet.
Filip Pizlo
Comment 7 2012-09-26 13:25:27 PDT
Created attachment 165861 [details] fixing things
Filip Pizlo
Comment 8 2012-09-27 00:17:50 PDT
Created attachment 165945 [details] it compiles!
Filip Pizlo
Comment 9 2012-09-29 17:56:29 PDT
Created attachment 166374 [details] sunspider runs I don't know how fast it runs, but at least it runs. Still lots more work to do before this patch is complete.
Filip Pizlo
Comment 10 2012-09-29 23:14:27 PDT
Created attachment 166379 [details] it sort of works I'm sort of reconsidering whether my idea of ridding the world of holes was the right approach. Although this patch is already a speed-up, it's looking like it would be an even clearer win if I did have some support for holes in contiguous arrays.
Filip Pizlo
Comment 11 2012-09-30 18:07:53 PDT
Created attachment 166395 [details] new approach: holy contiguous Note yet done.
Filip Pizlo
Comment 12 2012-09-30 18:34:55 PDT
Created attachment 166397 [details] I think it's done (holy contiguous) Still haven't compiled it yet. What could go wrong.
Filip Pizlo
Comment 13 2012-09-30 20:24:06 PDT
Created attachment 166401 [details] it compiles (holy contiguous) Don't know if it does things yet.
Filip Pizlo
Comment 14 2012-10-04 19:46:40 PDT
Created attachment 167234 [details] it works on 64-bit, starting to make it work on 32-bit
Filip Pizlo
Comment 15 2012-10-04 21:56:07 PDT
Created attachment 167244 [details] the patch, possibly I wrote the 32-bit code but I'm not sure if it works, yet.
Filip Pizlo
Comment 16 2012-10-06 15:32:23 PDT
Created attachment 167462 [details] the patch It's ready!
WebKit Review Bot
Comment 17 2012-10-06 15:35:49 PDT
Attachment 167462 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:695: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:764: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1118: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:151: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:152: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:152: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:156: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:156: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:202: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 52 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 18 2012-10-06 15:49:16 PDT
Early Warning System Bot
Comment 19 2012-10-06 15:51:49 PDT
Comment on attachment 167462 [details] the patch Attachment 167462 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14181802
Build Bot
Comment 20 2012-10-06 15:55:39 PDT
Gyuyoung Kim
Comment 21 2012-10-06 16:07:54 PDT
Build Bot
Comment 22 2012-10-06 19:01:37 PDT
Comment on attachment 167462 [details] the patch Attachment 167462 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/14181834 New failing tests: fast/js/array-bad-time.html fast/js/cross-frame-really-bad-time-with-__proto__.html fast/js/mozilla/strict/15.4.4.12.html fast/js/array-slow-put.html fast/js/dfg-array-push-bad-time.html fast/js/cross-frame-really-bad-time.html fast/js/array-defineOwnProperty.html sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.6_Array_prototype_pop/S15.4.4.6_A4_T1.html fast/js/Object-defineProperty.html fast/dom/message-port-deleted-by-accessor.html fast/canvas/webgl/shader-deleted-by-accessor.html fast/js/dfg-holy-put-by-val-interferes-with-get-array-length.html fast/js/dfg-array-push-slow-put.html fast/js/object-bad-time.html fast/js/dfg-array-pop-side-effects.html fast/js/mozilla/strict/15.4.4.6.html
Geoffrey Garen
Comment 23 2012-10-07 16:42:17 PDT
Comment on attachment 167462 [details] the patch Seems to be failing all the things.
Filip Pizlo
Comment 24 2012-10-07 22:03:22 PDT
Created attachment 167502 [details] the patch Still need to make the various build systems work but this one should be fine other than that.
WebKit Review Bot
Comment 25 2012-10-07 22:06:46 PDT
Attachment 167502 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:695: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:764: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1120: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:151: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:152: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:152: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:156: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:156: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:202: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 52 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 26 2012-10-07 22:20:26 PDT
Early Warning System Bot
Comment 27 2012-10-07 22:23:40 PDT
Comment on attachment 167502 [details] the patch Attachment 167502 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14223141
Build Bot
Comment 28 2012-10-07 22:29:38 PDT
Gyuyoung Kim
Comment 29 2012-10-07 22:30:13 PDT
Filip Pizlo
Comment 30 2012-10-08 00:10:43 PDT
Created attachment 167513 [details] the patch It should now pass all of the things, at least on Mac. We'll see how things go on other build systems.
WebKit Review Bot
Comment 31 2012-10-08 00:13:41 PDT
Attachment 167513 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:696: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:765: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1120: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:157: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:208: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 57 files If any of these errors are false positives, please file a bug against check-webkit-style.
Gyuyoung Kim
Comment 32 2012-10-08 00:21:24 PDT
Early Warning System Bot
Comment 33 2012-10-08 00:26:27 PDT
kov's GTK+ EWS bot
Comment 34 2012-10-08 00:26:31 PDT
Early Warning System Bot
Comment 35 2012-10-08 00:29:53 PDT
Comment on attachment 167513 [details] the patch Attachment 167513 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14205572
Filip Pizlo
Comment 36 2012-10-08 01:03:49 PDT
Created attachment 167517 [details] the patch
WebKit Review Bot
Comment 37 2012-10-08 01:07:26 PDT
Attachment 167517 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:696: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:765: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1120: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:157: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:208: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 57 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 38 2012-10-08 01:19:13 PDT
Early Warning System Bot
Comment 39 2012-10-08 01:24:17 PDT
Comment on attachment 167517 [details] the patch Attachment 167517 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14221201
Build Bot
Comment 40 2012-10-08 01:35:19 PDT
Filip Pizlo
Comment 41 2012-10-08 13:45:20 PDT
Created attachment 167599 [details] the patch
WebKit Review Bot
Comment 42 2012-10-08 13:48:14 PDT
Attachment 167599 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:696: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:765: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1120: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:157: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:208: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 57 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 43 2012-10-08 14:29:34 PDT
Filip Pizlo
Comment 44 2012-10-08 16:51:28 PDT
Created attachment 167647 [details] the patch
WebKit Review Bot
Comment 45 2012-10-08 16:58:27 PDT
Attachment 167647 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1 Source/JavaScriptCore/runtime/JSObject.h:696: The parameter name "butterfly" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSObject.h:765: The parameter name "globalData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.cpp:1120: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1430: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1465: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Source/JavaScriptCore/runtime/JSArray.h:157: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:158: The parameter name "storage" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callType" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:162: The parameter name "callData" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/runtime/JSArray.h:208: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 57 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 46 2012-10-08 19:28:50 PDT
Mark Hahnenberg
Comment 47 2012-10-09 13:43:52 PDT
Comment on attachment 167647 [details] the patch r=me with style and build fixes
Filip Pizlo
Comment 48 2012-10-09 14:08:28 PDT
Created attachment 167844 [details] patch for landing Fixing things.
WebKit Review Bot
Comment 49 2012-10-09 14:11:29 PDT
Attachment 167844 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'S..." exit_code: 1 Source/JavaScriptCore/dfg/DFGOperations.cpp:609: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Total errors found: 1 in 58 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 50 2012-10-09 16:41:08 PDT
Csaba Osztrogonác
Comment 51 2012-10-09 22:16:49 PDT
(In reply to comment #50) > Landed in http://trac.webkit.org/changeset/130826 ... and buildfix landed in http://trac.webkit.org/changeset/130826 ... and it caused a serious regression on Qt-ARM: https://bugs.webkit.org/show_bug.cgi?id=98857
Csaba Osztrogonác
Comment 52 2012-10-09 22:37:07 PDT
One more regression on Qt-WK2 64 bit: https://bugs.webkit.org/show_bug.cgi?id=98859
Note You need to log in before you can comment on or make changes to this bug.