Bug 183897

Summary: [JSC] List up all candidates in DFGCapabilities and FTLCapabilities
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: New BugsAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: ews-watchlist, fpizlo, keith_miller, mark.lam, msaboff, saam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
mark.lam: review+, ews-watchlist: commit-queue-
Patch for landing none

Description Yusuke Suzuki 2018-03-22 07:10:48 PDT
[JSC] List up all candidates in DFGCapabilities and FTLCapabilities
Comment 1 Yusuke Suzuki 2018-03-22 07:13:37 PDT
Created attachment 336277 [details]
Patch
Comment 2 Yusuke Suzuki 2018-03-22 07:46:34 PDT
Comment on attachment 336277 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=336277&action=review

> Source/JavaScriptCore/dfg/DFGCapabilities.cpp:276
> +    case op_put_by_index:

This "op_put_by_index" should be removed. Done in https://bugs.webkit.org/show_bug.cgi?id=183899.
Comment 3 Mark Lam 2018-03-22 07:53:21 PDT
Comment on attachment 336277 [details]
Patch

r=me
Comment 4 Yusuke Suzuki 2018-03-22 07:57:54 PDT
(In reply to Mark Lam from comment #3)
> Comment on attachment 336277 [details]
> Patch
> 
> r=me

During this fix, I've just found one issue in our FTLLowerToDFG code: PutByVal does not use modeForPut for its ArrayMode. It will fix jsc test failures in the current patch.
I'll land it after EWS becomes green :D
Comment 5 Yusuke Suzuki 2018-03-22 07:59:31 PDT
Created attachment 336283 [details]
Patch for landing
Comment 6 EWS Watchlist 2018-03-22 08:29:54 PDT
Comment on attachment 336277 [details]
Patch

Attachment 336277 [details] did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/7063579

New failing tests:
stress/parameter-scoping.js.ftl-eager-no-cjit
microbenchmarks/external-arguments-putbyval.js.ftl-no-cjit-b3o1
stress/arguments-callee-uninitialized.js.ftl-no-cjit-small-pool
stress/arguments-callee-uninitialized.js.ftl-eager
microbenchmarks/external-arguments-putbyval.js.ftl-no-cjit-no-put-stack-validate
microbenchmarks/external-arguments-putbyval.js.ftl-no-cjit-validate-sampling-profiler
stress/arguments-callee-uninitialized.js.ftl-no-cjit-validate-sampling-profiler
stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js.misc-ftl-no-cjit
stress/arguments-captured.js.ftl-eager-no-cjit-b3o1
stress/have-a-bad-time-with-arguments.js.misc-ftl-no-cjit
microbenchmarks/external-arguments-putbyval.js.ftl-eager-no-cjit
stress/arguments-callee-uninitialized.js.ftl-eager-no-cjit-b3o1
microbenchmarks/external-arguments-putbyval.js.ftl-no-cjit-no-inline-validate
stress/arguments-callee-uninitialized.js.ftl-no-cjit-no-put-stack-validate
stress/arguments-callee-uninitialized.js.ftl-no-cjit-b3o1
stress/arguments-captured.js.ftl-eager
stress/arguments-captured.js.ftl-eager-no-cjit
microbenchmarks/external-arguments-putbyval.js.ftl-eager-no-cjit-b3o1
stress/parameter-scoping.js.ftl-eager-no-cjit-b3o1
microbenchmarks/external-arguments-putbyval.js.ftl-eager
stress/arguments-callee-uninitialized.js.ftl-no-cjit-no-inline-validate
stress/arguments-callee-uninitialized.js.ftl-eager-no-cjit
stress/parameter-scoping.js.ftl-eager
Comment 7 Yusuke Suzuki 2018-03-22 08:59:06 PDT
Committed r229854: <https://trac.webkit.org/changeset/229854>
Comment 8 Radar WebKit Bug Importer 2018-03-22 09:00:42 PDT
<rdar://problem/38753339>
Comment 9 Saam Barati 2018-03-25 10:27:36 PDT
Comment on attachment 336283 [details]
Patch for landing

View in context: https://bugs.webkit.org/attachment.cgi?id=336283&action=review

> Source/JavaScriptCore/dfg/DFGCapabilities.cpp:292
> +    case op_put_by_index:
> +    case op_yield:
> +    case llint_program_prologue:
> +    case llint_eval_prologue:
> +    case llint_module_program_prologue:
> +    case llint_function_for_call_prologue:
> +    case llint_function_for_construct_prologue:
> +    case llint_function_for_call_arity_check:
> +    case llint_function_for_construct_arity_check:
> +    case llint_generic_return_point:
> +    case llint_throw_from_slow_path_trampoline:
> +    case llint_throw_during_call_trampoline:
> +    case llint_native_call_trampoline:
> +    case llint_native_construct_trampoline:
> +    case llint_internal_function_call_trampoline:
> +    case llint_internal_function_construct_trampoline:
> +    case handleUncaughtException:

Shouldn't all these be crashes besides put_by_index?