Bug 152901

Summary: FTL B3 fails to realize that binary snippets might choose to omit their fast path
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 150279    
Attachments:
Description Flags
the patch mark.lam: review+

Description Filip Pizlo 2016-01-08 10:49:27 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2016-01-08 10:59:41 PST
Created attachment 268552 [details]
the patch

After this patch we only have a handful of test failures:

** The following JSC stress test failures have been introduced:
	jsc-layout-tests.yaml/js/script-tests/dfg-constant-fold-misprediction.js.layout-ftl-eager-no-cjit
	profiler-test.yaml/tests/sunspider-1.0/crypto-sha1.js.profiler
	regress/script-tests/call-spread-apply.js.ftl-no-cjit-no-inline-validate
	regress/script-tests/call-spread-call.js.ftl-no-cjit-no-inline-validate
	regress/script-tests/getter-richards-try-catch.js.default-ftl
	regress/script-tests/getter-richards-try-catch.js.ftl-no-cjit-validate
	regress/script-tests/richards-try-catch.js.default-ftl
	regress/script-tests/richards-try-catch.js.ftl-eager
	regress/script-tests/richards-try-catch.js.ftl-eager-no-cjit
	regress/script-tests/richards-try-catch.js.ftl-no-cjit-no-put-stack-validate
	regress/script-tests/richards-try-catch.js.ftl-no-cjit-validate
	regress/script-tests/varargs-strict-mode.js.ftl-no-cjit-no-inline-validate
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.default-ftl
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-eager
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-eager-no-cjit
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-no-cjit-no-inline-validate
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-no-cjit-no-put-stack-validate
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-no-cjit-small-pool
	stress/ftl-try-catch-oom-error-lazy-slow-path.js.ftl-no-cjit-validate
	stress/ftl-try-catch-patchpoint-with-volatile-registers.js.default-ftl
	stress/ftl-try-catch-patchpoint-with-volatile-registers.js.ftl-eager-no-cjit
	stress/ftl-try-catch-patchpoint-with-volatile-registers.js.ftl-no-cjit-no-inline-validate
	stress/ftl-try-catch-patchpoint-with-volatile-registers.js.ftl-no-cjit-no-put-stack-validate
	stress/ftl-try-catch-patchpoint-with-volatile-registers.js.ftl-no-cjit-validate
	stress/load-varargs-then-inlined-call-and-exit-strict.js.ftl-no-cjit-no-inline-validate
	stress/op_negate.js.ftl-no-cjit
	stress/reflect-apply.js.ftl-eager-no-cjit
	stress/tail-call-varargs-no-stack-overflow.js.default-ftl
	stress/tail-call-varargs-no-stack-overflow.js.ftl-eager
	stress/tail-call-varargs-no-stack-overflow.js.ftl-eager-no-cjit
	stress/tail-call-varargs-no-stack-overflow.js.ftl-no-cjit-no-inline-validate
	stress/tail-call-varargs-no-stack-overflow.js.ftl-no-cjit-no-put-stack-validate
	stress/tail-call-varargs-no-stack-overflow.js.ftl-no-cjit-small-pool
	stress/tail-call-varargs-no-stack-overflow.js.ftl-no-cjit-validate
	stress/varargs-varargs-inlined-exit-strict-mode.js.ftl-no-cjit-no-inline-validate
Comment 2 WebKit Commit Bot 2016-01-08 11:01:35 PST
Attachment 268552 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7591:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Mark Lam 2016-01-08 11:01:41 PST
Comment on attachment 268552 [details]
the patch

r=me
Comment 4 Filip Pizlo 2016-01-08 11:03:27 PST
Landed in http://trac.webkit.org/changeset/194773