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
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.