WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
175396
Support compiling catch in the FTL
https://bugs.webkit.org/show_bug.cgi?id=175396
Summary
Support compiling catch in the FTL
Saam Barati
Reported
2017-08-09 14:28:16 PDT
...
Attachments
WIP
(7.93 KB, patch)
2017-08-24 12:41 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(32.58 KB, patch)
2017-08-24 16:57 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(37.22 KB, patch)
2017-08-24 17:17 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(37.22 KB, patch)
2017-08-24 22:16 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(38.83 KB, patch)
2017-08-25 16:22 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(56.79 KB, patch)
2017-08-25 18:10 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(59.54 KB, patch)
2017-08-25 18:33 PDT
,
Saam Barati
buildbot
: commit-queue-
Details
Formatted Diff
Diff
WIP
(64.55 KB, patch)
2017-08-28 14:53 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(73.87 KB, patch)
2017-08-28 17:38 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
WIP
(73.99 KB, patch)
2017-08-28 19:19 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
patch
(86.97 KB, patch)
2017-08-29 17:12 PDT
,
Saam Barati
fpizlo
: review+
Details
Formatted Diff
Diff
patch for landing
(84.16 KB, patch)
2017-09-04 15:30 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
patch for landing
(84.76 KB, patch)
2017-09-04 16:06 PDT
,
Saam Barati
no flags
Details
Formatted Diff
Diff
Show Obsolete
(12)
View All
Add attachment
proposed patch, testcase, etc.
Saam Barati
Comment 1
2017-08-24 12:41:31 PDT
Created
attachment 319011
[details]
WIP it begins
Saam Barati
Comment 2
2017-08-24 16:57:04 PDT
Created
attachment 319039
[details]
WIP
Saam Barati
Comment 3
2017-08-24 17:17:53 PDT
Created
attachment 319044
[details]
WIP
Saam Barati
Comment 4
2017-08-24 22:16:05 PDT
Created
attachment 319063
[details]
WIP
Saam Barati
Comment 5
2017-08-25 16:22:08 PDT
Created
attachment 319111
[details]
WIP Not using EntrySwitch for catch yet, but much of it is wired through the DFG at this point.
Saam Barati
Comment 6
2017-08-25 18:10:04 PDT
Created
attachment 319124
[details]
WIP
Saam Barati
Comment 7
2017-08-25 18:33:34 PDT
Created
attachment 319127
[details]
WIP A bunch of the try/catch microbenchmarks run. I'm running the full test suite now.
Build Bot
Comment 8
2017-08-25 19:01:31 PDT
Attachment 319127
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:265: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:287: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:292: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:293: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:300: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:309: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:66: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:67: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLState.cpp:83: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] Total errors found: 9 in 33 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 9
2017-08-26 05:40:51 PDT
Comment on
attachment 319127
[details]
WIP
Attachment 319127
[details]
did not pass jsc-ews (mac): Output:
http://webkit-queues.webkit.org/results/4385073
New failing tests: microbenchmarks/delta-blue-try-catch.js.ftl-eager-no-cjit stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager-no-cjit stress/typedarray-bad-getter.js.ftl-eager-no-cjit-b3o1 stress/tail-call-recognize.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/unicode-escape-sequences.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/object-literal-shorthand-construction.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager stress/activation-sink-default-value-tdz-error.js.ftl-eager-no-cjit stress/typedarray-access-monomorphic-neutered.js.ftl-eager stress/typedarray-access-monomorphic-neutered.js.ftl-eager-no-cjit-b3o1 stress/const-tdz.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/exception-expression-offset.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/parser-error-messages.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-proto-func-property-getter-except.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/strict/23.reservedWords.js.default stress/activation-sink-default-value-tdz-error.js.ftl-eager-no-cjit-b3o1 stress/typedarray-access-monomorphic-neutered.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/intl-datetimeformat.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/es6-function-properties.js.layout-ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager stress/typedarray-functions-with-neutered.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/typedarray-prototype.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/object-literal-duplicate-properties.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-proto-func-length-getter-except.js.layout-ftl-eager-no-cjit stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/regress-150513.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/resolve-arguments-from-scope.js.layout-ftl-eager-no-cjit stress/const-tdz.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/intl-numberformat.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/strict/23.reservedWords_sm.js.default jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-use-from-all-the-places-broken.js.layout-ftl-eager-no-cjit stress/typedarray-bad-getter.js.ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.default jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout-ftl-no-cjit stress/typedarray-functions-with-neutered.js.ftl-no-cjit-no-put-stack-validate jsc-layout-tests.yaml/js/script-tests/intl-collator.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/parser-syntax-check.js.layout-ftl-eager-no-cjit stress/activation-sink-default-value-tdz-error.js.ftl-eager stress/typedarray-functions-with-neutered.js.ftl-no-cjit-validate-sampling-profiler stress/typedarray-functions-with-neutered.js.ftl-no-cjit-no-inline-validate stress/typedarray-access-neutered.js.ftl-eager stress/class-syntax-super-in-eval.js.ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-no-cjit-b3o1 stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager stress/eval-func-decl-in-global-of-eval.js.ftl-eager-no-cjit-b3o1 stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl-eager-no-cjit stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager stress/tail-call-recognize.js.ftl-eager-no-cjit stress/typedarray-access-neutered.js.ftl-eager-no-cjit-b3o1 stress/typedarray-bad-getter.js.ftl-eager stress/class-syntax-super-in-eval.js.ftl-eager-no-cjit-b3o1 stress/const-semantics.js.ftl-eager stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/Miscellaneous/HasOnlyWritableDataPropertiesCache.js.default stress/const-semantics.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/date-toLocaleString.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/arrowfunction-syntax-errors.js.layout-ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager-no-cjit microbenchmarks/delta-blue-try-catch.js.ftl-eager-no-cjit-b3o1 stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/statement-list-item-syntax-errors.js.layout-ftl-eager-no-cjit stress/tail-call-recognize.js.ftl-eager stress/const-semantics.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/setPrototypeOf.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/class-syntax-super.js.layout-ftl-eager-no-cjit stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager-no-cjit stress/eval-func-decl-in-global-of-eval.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/symbol-abstract-relational-comparison.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/date-proto-generic-invocation.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/Lib/construct.js.default stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/reserved-words.js.layout-ftl-eager-no-cjit stress/typedarray-access-neutered.js.ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-ftl-eager-no-cjit
Build Bot
Comment 10
2017-08-26 07:37:41 PDT
Comment on
attachment 319127
[details]
WIP
Attachment 319127
[details]
did not pass jsc-ews (mac): Output:
http://webkit-queues.webkit.org/results/4385462
New failing tests: microbenchmarks/delta-blue-try-catch.js.ftl-eager-no-cjit stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager-no-cjit stress/typedarray-bad-getter.js.ftl-eager-no-cjit-b3o1 stress/tail-call-recognize.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/unicode-escape-sequences.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/object-literal-shorthand-construction.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager stress/activation-sink-default-value-tdz-error.js.ftl-eager-no-cjit stress/typedarray-access-monomorphic-neutered.js.ftl-eager stress/typedarray-access-monomorphic-neutered.js.ftl-eager-no-cjit-b3o1 stress/const-tdz.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/exception-expression-offset.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/parser-error-messages.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-proto-func-property-getter-except.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/strict/23.reservedWords.js.default stress/activation-sink-default-value-tdz-error.js.ftl-eager-no-cjit-b3o1 stress/typedarray-access-monomorphic-neutered.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/intl-datetimeformat.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/es6-function-properties.js.layout-ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager stress/typedarray-functions-with-neutered.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/typedarray-prototype.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/object-literal-duplicate-properties.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-proto-func-length-getter-except.js.layout-ftl-eager-no-cjit stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/regress-150513.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/resolve-arguments-from-scope.js.layout-ftl-eager-no-cjit stress/const-tdz.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/intl-numberformat.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/strict/23.reservedWords_sm.js.default jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-use-from-all-the-places-broken.js.layout-ftl-eager-no-cjit stress/typedarray-bad-getter.js.ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.default jsc-layout-tests.yaml/js/script-tests/regress-150434.js.layout-ftl-no-cjit stress/typedarray-functions-with-neutered.js.ftl-no-cjit-no-put-stack-validate jsc-layout-tests.yaml/js/script-tests/intl-collator.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/parser-syntax-check.js.layout-ftl-eager-no-cjit stress/activation-sink-default-value-tdz-error.js.ftl-eager stress/typedarray-functions-with-neutered.js.ftl-no-cjit-validate-sampling-profiler stress/typedarray-functions-with-neutered.js.ftl-no-cjit-no-inline-validate stress/typedarray-access-neutered.js.ftl-eager stress/class-syntax-super-in-eval.js.ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/basic-strict-mode.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-no-cjit-b3o1 stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager stress/eval-func-decl-in-global-of-eval.js.ftl-eager-no-cjit-b3o1 stress/eval-func-decl-block-with-var-sinthesize.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl-eager-no-cjit stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager stress/tail-call-recognize.js.ftl-eager-no-cjit stress/typedarray-access-neutered.js.ftl-eager-no-cjit-b3o1 stress/typedarray-bad-getter.js.ftl-eager stress/class-syntax-super-in-eval.js.ftl-eager-no-cjit-b3o1 stress/const-semantics.js.ftl-eager stress/eval-func-decl-in-eval-within-with-scope.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/Miscellaneous/HasOnlyWritableDataPropertiesCache.js.default stress/const-semantics.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/date-toLocaleString.js.layout-ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/arrowfunction-syntax-errors.js.layout-ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager-no-cjit microbenchmarks/delta-blue-try-catch.js.ftl-eager-no-cjit-b3o1 stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager jsc-layout-tests.yaml/js/script-tests/statement-list-item-syntax-errors.js.layout-ftl-eager-no-cjit stress/tail-call-recognize.js.ftl-eager stress/const-semantics.js.ftl-eager-no-cjit stress/const-tdz.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/setPrototypeOf.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/class-syntax-super.js.layout-ftl-eager-no-cjit stress/activation-sink-osrexit-default-value-tdz-error.js.ftl-eager-no-cjit stress/eval-func-decl-in-global-of-eval.js.ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/symbol-abstract-relational-comparison.js.layout-ftl-eager-no-cjit stress/typedarray-functions-with-neutered.js.ftl-eager-no-cjit stress/eval-func-decl-in-eval-within-block-with-let.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/date-proto-generic-invocation.js.layout-ftl-eager-no-cjit ChakraCore.yaml/ChakraCore/test/Lib/construct.js.default stress/eval-func-decl-within-eval-with-reassign-to-var.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/reserved-words.js.layout-ftl-eager-no-cjit stress/typedarray-access-neutered.js.ftl-eager-no-cjit stress/eval-func-decl-block-with-var-and-remove.js.ftl-eager-no-cjit-b3o1 jsc-layout-tests.yaml/js/script-tests/class-syntax-name.js.layout-ftl-eager-no-cjit
Saam Barati
Comment 11
2017-08-28 14:53:54 PDT
Created
attachment 319211
[details]
WIP
Build Bot
Comment 12
2017-08-28 14:56:43 PDT
Attachment 319211
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:265: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:287: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:292: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:293: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:300: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:309: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLState.cpp:83: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/ftl/FTLOSREntry.cpp:174: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:446: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:447: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:448: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 11 in 35 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 13
2017-08-28 17:38:29 PDT
Created
attachment 319222
[details]
WIP
Build Bot
Comment 14
2017-08-28 17:42:41 PDT
Attachment 319222
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:167: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:289: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:311: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:316: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:317: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:324: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:333: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:343: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:200: More than one command on the same line [whitespace/newline] [4] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:446: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:447: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:448: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 12 in 38 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 15
2017-08-28 19:19:31 PDT
Created
attachment 319231
[details]
WIP
Saam Barati
Comment 16
2017-08-29 17:12:35 PDT
Created
attachment 319312
[details]
patch
Build Bot
Comment 17
2017-08-29 17:16:03 PDT
Attachment 319312
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:168: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:200: More than one command on the same line [whitespace/newline] [4] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:445: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:446: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:447: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 5 in 40 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 18
2017-08-31 16:28:06 PDT
Comment on
attachment 319312
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=319312&action=review
r=me with comments
> JSTests/microbenchmarks/fake-iterators-that-throw-when-finished.js:76 > - if (true) > + if (false)
lol
> Source/JavaScriptCore/b3/air/AirGenerate.cpp:226 > + jit.emitFunctionPrologue(); > + if (code.frameSize()) { > + AllowMacroScratchRegisterUsageIf allowScratch(jit, isARM64()); > + jit.addPtr(CCallHelpers::TrustedImm32(-code.frameSize()), MacroAssembler::stackPointerRegister); > + } > + > + jit.emitSave(code.calleeSaveRegisterAtOffsetList());
Why not have Code set up default prologue generators that do this?
> Source/JavaScriptCore/dfg/DFGGraph.h:1014 > + // In SSA, this is the argument speculation that we've locked in for an entrypoint block. > + // > + // We must speculate on the argument types at each entrypoint even if operations involving > + // arguments get killed. For example: > + // > + // function foo(x) { > + // var tmp = x + 1; > + // } > + // > + // Assume that x is always int during profiling. The ArithAdd for "x + 1" will be dead and will > + // have a proven check for the edge to "x". So, we will not insert a Check node and we will > + // kill the GetStack for "x". But, we must do the int check in the progolue, because that's the > + // thing we used to allow DCE of ArithAdd. Otherwise the add could be impure: > + // > + // var o = { > + // valueOf: function() { do side effects; } > + // }; > + // foo(o); > + // > + // If we DCE the ArithAdd and we remove the int check on x, then this won't do the side > + // effects. > + // > + // By convention, entrypoint index 0 is used for the CodeBlock's op_enter entrypoint. > + // So argumentFormats[0] are the argument formats for the normal call entrypoint. > + Vector<Vector<FlushFormat>> argumentFormats; > + > + // This maps an entrypoint index to a particular op_catch bytecode offset. By convention, > + // it'll never have zero as a key because we use zero to mean the op_enter entrypoint. > + HashMap<unsigned, unsigned> entrypointIndexToCatchBytecodeOffset; > + > + unsigned numberOfEntrypoints { UINT_MAX }; > + }; > + std::unique_ptr<SSAData> m_ssaData;
There's a lot of stuff in Graph that is SSA-only and it's not in a structure like this. Any reason why this can't just be directly on Graph?
Saam Barati
Comment 19
2017-09-04 14:43:14 PDT
Comment on
attachment 319312
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=319312&action=review
>> Source/JavaScriptCore/b3/air/AirGenerate.cpp:226 >> + jit.emitSave(code.calleeSaveRegisterAtOffsetList()); > > Why not have Code set up default prologue generators that do this?
I don't follow exactly what you're proposing here. Do you want Code to add a default generator for each index in its own HashMap? Or do you want it to have functions that know how to adjust SP and spill callee saves?
>> Source/JavaScriptCore/dfg/DFGGraph.h:1014 >> + std::unique_ptr<SSAData> m_ssaData; > > There's a lot of stuff in Graph that is SSA-only and it's not in a structure like this. Any reason why this can't just be directly on Graph?
Filip and I spoke offline. I may do this in a follow up patch for all the SSA data.
Saam Barati
Comment 20
2017-09-04 15:30:40 PDT
Created
attachment 319863
[details]
patch for landing
Build Bot
Comment 21
2017-09-04 15:33:16 PDT
Attachment 319863
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:169: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:200: More than one command on the same line [whitespace/newline] [4] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:443: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:444: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:445: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 5 in 38 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 22
2017-09-04 16:06:56 PDT
Created
attachment 319864
[details]
patch for landing
Build Bot
Comment 23
2017-09-04 16:09:35 PDT
Attachment 319864
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:169: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:200: More than one command on the same line [whitespace/newline] [4] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:443: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:444: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:445: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 5 in 38 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 24
2017-09-04 20:19:44 PDT
(In reply to Saam Barati from
comment #19
)
> Comment on
attachment 319312
[details]
> patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=319312&action=review
> > >> Source/JavaScriptCore/b3/air/AirGenerate.cpp:226 > >> + jit.emitSave(code.calleeSaveRegisterAtOffsetList()); > > > > Why not have Code set up default prologue generators that do this? > > I don't follow exactly what you're proposing here. Do you want Code to add a > default generator for each index in its own HashMap? Or do you want it to > have functions that know how to adjust SP and spill callee saves?
I want a Code to add a default generator for each index. Then it doesn’t even need to be a hashmap. It would just be a vector. Maybe we should then combine it with the other entry point indexed vectors (like m_entrypointLabels) and have it be a vector of structs.
> > >> Source/JavaScriptCore/dfg/DFGGraph.h:1014 > >> + std::unique_ptr<SSAData> m_ssaData; > > > > There's a lot of stuff in Graph that is SSA-only and it's not in a structure like this. Any reason why this can't just be directly on Graph? > > Filip and I spoke offline. I may do this in a follow up patch for all the > SSA data.
WebKit Commit Bot
Comment 25
2017-09-04 20:21:37 PDT
Comment on
attachment 319864
[details]
patch for landing Clearing flags on attachment: 319864 Committed
r221602
: <
http://trac.webkit.org/changeset/221602
>
WebKit Commit Bot
Comment 26
2017-09-04 20:21:39 PDT
All reviewed patches have been landed. Closing bug.
Saam Barati
Comment 27
2017-09-04 20:27:07 PDT
(In reply to Filip Pizlo from
comment #24
)
> (In reply to Saam Barati from
comment #19
) > > Comment on
attachment 319312
[details]
> > patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=319312&action=review
> > > > >> Source/JavaScriptCore/b3/air/AirGenerate.cpp:226 > > >> + jit.emitSave(code.calleeSaveRegisterAtOffsetList()); > > > > > > Why not have Code set up default prologue generators that do this? > > > > I don't follow exactly what you're proposing here. Do you want Code to add a > > default generator for each index in its own HashMap? Or do you want it to > > have functions that know how to adjust SP and spill callee saves? > > I want a Code to add a default generator for each index. Then it doesn’t > even need to be a hashmap. It would just be a vector. Maybe we should then > combine it with the other entry point indexed vectors (like > m_entrypointLabels) and have it be a vector of structs.
Ok. I'll look into this in a followup. What makes it a bit tricky is that Air doesn't know about all the entrypoints in the vector until after LowerEntrySwitch. However, I want this API to be callable even before we emit B3 code.
> > > > > >> Source/JavaScriptCore/dfg/DFGGraph.h:1014 > > >> + std::unique_ptr<SSAData> m_ssaData; > > > > > > There's a lot of stuff in Graph that is SSA-only and it's not in a structure like this. Any reason why this can't just be directly on Graph? > > > > Filip and I spoke offline. I may do this in a follow up patch for all the > > SSA data.
Radar WebKit Bug Importer
Comment 28
2017-09-27 12:50:35 PDT
<
rdar://problem/34694123
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug