WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
151745
[ARM] REGRESSION: Fix FTL JIT related failures on AArch64 Linux
https://bugs.webkit.org/show_bug.cgi?id=151745
Summary
[ARM] REGRESSION: Fix FTL JIT related failures on AArch64 Linux
Csaba Osztrogonác
Reported
2015-12-02 08:55:28 PST
FTL JIT wasn't tested on AArch64 Linux long time ago. I ran stress tests on
r192942
and got many failures: ** The following JSC stress test failures have been introduced: cdjs-tests.yaml/main.js.ftl-eager-no-cjit cdjs-tests.yaml/main.js.ftl-no-cjit executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-default jsc-layout-tests.yaml/js/script-tests/caller-property.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl 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 jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl-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 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 jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-other.js.layout-dfg-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-use-from-all-the-places-broken.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/exception-propagate-from-dfg-to-llint.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/for-in-modify-in-loop.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/stack-trace.js.layout-ftl-eager-no-cjit modules.yaml/modules/execution-order-dag.js.dfg-eager-no-cjit-validate-modules modules.yaml/modules/execution-order-depth.js.no-llint-modules mozilla-tests.yaml/ecma/Date/15.9.5.23-11.js.mozilla-baseline mozilla-tests.yaml/ecma/String/15.5.4.6-1.js.mozilla-baseline mozilla-tests.yaml/ecma/Types/8.4.js.mozilla-baseline mozilla-tests.yaml/ecma_2/String/split-001.js.mozilla-baseline mozilla-tests.yaml/js1_3/inherit/proto_2.js.mozilla-baseline regress/script-tests/Float32Array-matrix-mult.js.dfg-maximal-flush-validate-no-cjit regress/script-tests/Int16Array-bubble-sort-with-byteLength.js.ftl-no-cjit-no-put-stack-validate regress/script-tests/deltablue-varargs.js.ftl-eager regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js.ftl-eager 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/hoist-poly-check-structure.js.ftl-no-cjit-no-inline-validate regress/script-tests/inlined-put-by-id-transition.js.no-llint regress/script-tests/polymorphic-put-by-id.js.default regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-no-inline-validate regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-small-pool regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-validate regress/script-tests/sorting-benchmark.js.dfg-maximal-flush-validate-no-cjit regress/script-tests/v8-raytrace-with-empty-try-catch.js.ftl-eager-no-cjit regress/script-tests/v8-raytrace-with-empty-try-catch.js.ftl-no-cjit-no-put-stack-validate regress/script-tests/v8-raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit stress/array-copywithin.js.ftl-eager-no-cjit stress/capture-escape-and-throw.js.ftl-eager-no-cjit stress/capture-escape-and-throw.js.ftl-no-cjit-no-inline-validate stress/capture-escape-and-throw.js.ftl-no-cjit-no-put-stack-validate stress/capture-escape-and-throw.js.ftl-no-cjit-validate stress/const-loop-semantics.js.dfg-eager stress/exception-effect-strcat.js.ftl-eager stress/exception-effect-strcat.js.ftl-eager-no-cjit stress/exception-effect-strcat.js.ftl-no-cjit-no-inline-validate stress/exception-effect-strcat.js.ftl-no-cjit-no-put-stack-validate stress/exception-effect-strcat.js.ftl-no-cjit-validate stress/exception-in-strcat-string-overflow.js.ftl-eager-no-cjit stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-no-inline-validate stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-validate stress/exception-in-strcat.js.ftl-eager stress/exception-in-strcat.js.ftl-eager-no-cjit stress/exception-in-strcat.js.ftl-no-cjit-no-inline-validate stress/exception-in-strcat.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-strcat.js.ftl-no-cjit-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-eager-no-cjit stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-no-inline-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-validate stress/exit-after-int52-to-value.js.ftl-no-cjit-small-pool stress/for-in-delete-during-iteration.js.ftl-no-cjit-validate stress/ftl-library-exception.js.default-ftl stress/ftl-library-exception.js.ftl-eager stress/ftl-library-exception.js.ftl-eager-no-cjit stress/ftl-library-exception.js.ftl-no-cjit-no-inline-validate stress/ftl-library-exception.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-exception.js.ftl-no-cjit-small-pool stress/ftl-library-exception.js.ftl-no-cjit-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-eager stress/ftl-library-inlining-exceptions-dataview.js.ftl-eager-no-cjit stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-no-inline-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-small-pool stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-validate stress/ftl-library-inlining-exceptions.js.default-ftl stress/ftl-library-inlining-exceptions.js.ftl-eager stress/ftl-library-inlining-exceptions.js.ftl-eager-no-cjit stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-no-inline-validate stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-small-pool stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-validate stress/ftl-try-catch-tail-call-inilned-caller.js.ftl-no-cjit-no-inline-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.default-ftl stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-eager stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-eager-no-cjit stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-small-pool stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-validate stress/get-by-id-throw-from-unexpected-getter-through-optimized-code-that-does-not-exit.js.ftl-eager-no-cjit stress/get-by-id-throw-from-unexpected-getter-through-optimized-code.js.ftl-eager-no-cjit stress/ic-throw-through-optimized-code.js.default-ftl stress/ic-throw-through-optimized-code.js.ftl-eager stress/ic-throw-through-optimized-code.js.ftl-eager-no-cjit stress/ic-throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/ic-throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/ic-throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/ic-throw-through-optimized-code.js.ftl-no-cjit-validate stress/infinite-loop-that-uses-captured-variables-before-throwing.js.ftl-eager stress/infinite-loop-that-uses-captured-variables-before-throwing.js.ftl-eager-no-cjit stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.ftl-eager stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.ftl-eager-no-cjit stress/infinite-loop-that-uses-captured-variables-with-osr-entry.js.ftl-eager-no-cjit stress/math-pow-nan-behaviors.js.ftl-no-cjit-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-eager-no-cjit stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-no-inline-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-no-put-stack-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-validate stress/put-by-id-on-new-object-after-prototype-transition-strict.js.always-trigger-copy-phase stress/put-by-id-throw-through-optimized-code.js.ftl-eager-no-cjit stress/reflect-has.js.ftl-eager-no-cjit stress/runtime-throw-through-optimized-code.js.ftl-eager stress/runtime-throw-through-optimized-code.js.ftl-eager-no-cjit stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-validate stress/sink-multigetbyoffset.js.ftl-eager stress/sink-multigetbyoffset.js.ftl-no-cjit-small-pool stress/throw-from-ftl-call-ic-slow-path-cells.js.default-ftl stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-validate stress/throw-through-optimized-code.js.ftl-eager stress/throw-through-optimized-code.js.ftl-eager-no-cjit stress/throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/throw-through-optimized-code.js.ftl-no-cjit-validate stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-infinite-loop-that-uses-captured-variables.js.ftl-eager stress/tricky-infinite-loop-that-uses-captured-variables.js.ftl-eager-no-cjit stress/typedarray-every.js.ftl-eager-no-cjit stress/typedarray-filter.js.ftl-eager-no-cjit stress/typedarray-find.js.ftl-eager-no-cjit stress/typedarray-map.js.ftl-eager-no-cjit stress/typedarray-reduce.js.ftl-eager stress/typedarray-reduce.js.ftl-eager-no-cjit stress/typedarray-reduceRight.js.ftl-eager-no-cjit stress/typedarray-some.js.ftl-eager-no-cjit stress/typedarray-sort.js.ftl-eager-no-cjit stress/v8-deltablue-strict.js.ftl-eager-no-cjit stress/v8-deltablue-strict.js.ftl-no-cjit-validate stress/v8-earley-boyer-strict.js.ftl-eager-no-cjit stress/v8-earley-boyer-strict.js.no-llint stress/v8-raytrace-strict.js.ftl-eager-no-cjit stress/v8-regexp-strict.js.default stress/v8-regexp-strict.js.ftl-no-cjit-validate stress/v8-splay-strict.js.default stress/v8-splay-strict.js.ftl-no-cjit-validate v8-v6/v8-deltablue.js.default v8-v6/v8-earley-boyer.js.ftl-eager-no-cjit v8-v6/v8-raytrace.js.dfg-eager v8-v6/v8-raytrace.js.dfg-maximal-flush-validate-no-cjit v8-v6/v8-raytrace.js.ftl-eager-no-cjit v8-v6/v8-raytrace.js.ftl-no-cjit-no-put-stack-validate v8-v6/v8-raytrace.js.ftl-no-cjit-validate v8-v6/v8-splay.js.dfg-eager v8-v6/v8-splay.js.ftl-eager-no-cjit Results for JSC stress tests: 186 failures found.
Attachments
Add attachment
proposed patch, testcase, etc.
Csaba Osztrogonác
Comment 1
2015-12-02 08:55:56 PST
failures without FTL JIT on the same revision: ** The following JSC stress test failures have been introduced: executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-default executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-other.js.layout-dfg-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/sort-large-array.js.layout-dfg-eager-no-cjit mozilla-tests.yaml/ecma/Date/15.9.5.10-3.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.13-4.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.23-11.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.36-5.js.mozilla-baseline mozilla-tests.yaml/ecma/Expressions/11.7.1.js.mozilla-dfg-eager-no-cjit-validate-phases mozilla-tests.yaml/js1_2/regexp/RegExp_rightContext_as_array.js.mozilla-baseline regress/script-tests/deltablue-varargs.js.no-llint regress/script-tests/polymorphic-put-by-id.js.dfg-eager regress/script-tests/raytrace-with-empty-try-catch.js.dfg-eager-no-cjit-validate regress/script-tests/sorting-benchmark.js.default regress/script-tests/v8-raytrace-with-try-catch.js.dfg-eager regress/script-tests/v8-raytrace-with-try-catch.js.dfg-eager-no-cjit-validate stress/array-message-passing.js.dfg-eager-no-cjit-validate stress/load-varargs-then-inlined-call-exit-in-foo.js.no-llint stress/redundant-array-bounds-checks-addition-skip-first.js.default stress/v8-crypto-strict.js.dfg-eager-no-cjit-validate stress/v8-regexp-strict.js.dfg-eager-no-cjit-validate stress/v8-regexp-strict.js.dfg-maximal-flush-validate-no-cjit sunspider-1.0/3d-raytrace.js.no-llint v8-v6/v8-crypto.js.dfg-eager-no-cjit-validate v8-v6/v8-raytrace.js.default v8-v6/v8-raytrace.js.dfg-eager-no-cjit-validate v8-v6/v8-splay.js.default Results for JSC stress tests: 28 failures found.
Zan Dobersek
Comment 2
2017-10-18 02:50:48 PDT
This isn't representative of the FTL JIT support on Linux ARM64 almost two years later.
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