Bug 141771 - REGRESSION(r180279): It broke 20 tests on ARM Linux
Summary: REGRESSION(r180279): It broke 20 tests on ARM Linux
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Csaba Osztrogonác
URL:
Keywords:
: 141954 (view as bug list)
Depends on:
Blocks: 108645 141332
  Show dependency treegraph
 
Reported: 2015-02-18 14:59 PST by Csaba Osztrogonác
Modified: 2015-02-25 01:03 PST (History)
10 users (show)

See Also:


Attachments
Patch (2.29 KB, patch)
2015-02-19 00:51 PST, Csaba Osztrogonác
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2015-02-18 14:59:23 PST
20 different tests fail on ARM and Thumb2 instruction set too:
jsc-layout-tests.yaml/js/script-tests/apply-varargs.js
jsc-layout-tests.yaml/js/script-tests/comparison-operators.js
jsc-layout-tests.yaml/js/script-tests/dfg-arguments-out-of-bounds.js
jsc-layout-tests.yaml/js/script-tests/function-apply-aliased.js
jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js
jsc-layout-tests.yaml/js/script-tests/regress-139548.js
jsc-layout-tests.yaml/js/slow-stress/script-tests/variadic-closure-call.js
regress/script-tests/call-spread-apply.js
regress/script-tests/call-spread-call.js
regress/script-tests/deltablue-varargs.js
stress/call-varargs-length-effects.js
stress/construct-varargs-inline-smaller-Foo.js
stress/construct-varargs-inline.js
stress/construct-varargs-no-inline.js
stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js
stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js
stress/get-my-argument-by-val-creates-arguments.js
stress/load-varargs-then-inlined-call-exit-in-foo.js
stress/load-varargs-then-inlined-call-inlined.js
stress/load-varargs-then-inlined-call.js


detailed results:
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/11347
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Traditional%20Release/builds/11201

** The following JSC stress test failures have been introduced:
	jsc-layout-tests.yaml/js/script-tests/apply-varargs.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/comparison-operators-greater.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/comparison-operators-less.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/comparison-operators.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-arguments-out-of-bounds.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-arguments-out-of-bounds.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-arguments-out-of-bounds.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-arguments-out-of-bounds.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/function-apply-aliased.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout
	jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-no-llint
	jsc-layout-tests.yaml/js/slow-stress/script-tests/variadic-closure-call.js.default
	jsc-layout-tests.yaml/js/slow-stress/script-tests/variadic-closure-call.js.no-cjit
	regress/script-tests/call-spread-apply.js.always-trigger-copy-phase
	regress/script-tests/call-spread-apply.js.default
	regress/script-tests/call-spread-apply.js.dfg-eager
	regress/script-tests/call-spread-apply.js.dfg-eager-no-cjit-validate
	regress/script-tests/call-spread-apply.js.no-cjit-validate-phases
	regress/script-tests/call-spread-apply.js.no-llint
	regress/script-tests/call-spread-call.js.always-trigger-copy-phase
	regress/script-tests/call-spread-call.js.default
	regress/script-tests/call-spread-call.js.dfg-eager
	regress/script-tests/call-spread-call.js.dfg-eager-no-cjit-validate
	regress/script-tests/call-spread-call.js.no-cjit-validate-phases
	regress/script-tests/call-spread-call.js.no-llint
	regress/script-tests/deltablue-varargs.js.always-trigger-copy-phase
	regress/script-tests/deltablue-varargs.js.default
	regress/script-tests/deltablue-varargs.js.dfg-eager
	regress/script-tests/deltablue-varargs.js.dfg-eager-no-cjit-validate
	regress/script-tests/deltablue-varargs.js.no-cjit-validate-phases
	regress/script-tests/deltablue-varargs.js.no-llint
	stress/call-varargs-length-effects.js.always-trigger-copy-phase
	stress/call-varargs-length-effects.js.default
	stress/call-varargs-length-effects.js.dfg-eager
	stress/call-varargs-length-effects.js.dfg-eager-no-cjit-validate
	stress/call-varargs-length-effects.js.no-cjit-validate-phases
	stress/call-varargs-length-effects.js.no-llint
	stress/construct-varargs-inline-smaller-Foo.js.always-trigger-copy-phase
	stress/construct-varargs-inline-smaller-Foo.js.default
	stress/construct-varargs-inline-smaller-Foo.js.dfg-eager
	stress/construct-varargs-inline-smaller-Foo.js.dfg-eager-no-cjit-validate
	stress/construct-varargs-inline-smaller-Foo.js.no-cjit-validate-phases
	stress/construct-varargs-inline-smaller-Foo.js.no-llint
	stress/construct-varargs-inline.js.always-trigger-copy-phase
	stress/construct-varargs-inline.js.default
	stress/construct-varargs-inline.js.dfg-eager
	stress/construct-varargs-inline.js.dfg-eager-no-cjit-validate
	stress/construct-varargs-inline.js.no-cjit-validate-phases
	stress/construct-varargs-inline.js.no-llint
	stress/construct-varargs-no-inline.js.always-trigger-copy-phase
	stress/construct-varargs-no-inline.js.default
	stress/construct-varargs-no-inline.js.dfg-eager
	stress/construct-varargs-no-inline.js.dfg-eager-no-cjit-validate
	stress/construct-varargs-no-inline.js.no-cjit-validate-phases
	stress/construct-varargs-no-inline.js.no-llint
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.always-trigger-copy-phase
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.default
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.dfg-eager
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.dfg-eager-no-cjit-validate
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.no-cjit-validate-phases
	stress/get-argument-by-val-in-inlined-varargs-call-out-of-bounds.js.no-llint
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.always-trigger-copy-phase
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.default
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.dfg-eager
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.dfg-eager-no-cjit-validate
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.no-cjit-validate-phases
	stress/get-argument-by-val-safe-in-inlined-varargs-call-out-of-bounds.js.no-llint
	stress/get-my-argument-by-val-creates-arguments.js.always-trigger-copy-phase
	stress/get-my-argument-by-val-creates-arguments.js.default
	stress/get-my-argument-by-val-creates-arguments.js.dfg-eager
	stress/get-my-argument-by-val-creates-arguments.js.dfg-eager-no-cjit-validate
	stress/get-my-argument-by-val-creates-arguments.js.no-cjit-validate-phases
	stress/get-my-argument-by-val-creates-arguments.js.no-llint
	stress/load-varargs-then-inlined-call-exit-in-foo.js.always-trigger-copy-phase
	stress/load-varargs-then-inlined-call-exit-in-foo.js.default
	stress/load-varargs-then-inlined-call-exit-in-foo.js.dfg-eager
	stress/load-varargs-then-inlined-call-exit-in-foo.js.dfg-eager-no-cjit-validate
	stress/load-varargs-then-inlined-call-exit-in-foo.js.no-cjit-validate-phases
	stress/load-varargs-then-inlined-call-exit-in-foo.js.no-llint
	stress/load-varargs-then-inlined-call-inlined.js.always-trigger-copy-phase
	stress/load-varargs-then-inlined-call-inlined.js.default
	stress/load-varargs-then-inlined-call-inlined.js.dfg-eager
	stress/load-varargs-then-inlined-call-inlined.js.dfg-eager-no-cjit-validate
	stress/load-varargs-then-inlined-call-inlined.js.no-cjit-validate-phases
	stress/load-varargs-then-inlined-call-inlined.js.no-llint
	stress/load-varargs-then-inlined-call.js.always-trigger-copy-phase
	stress/load-varargs-then-inlined-call.js.default
	stress/load-varargs-then-inlined-call.js.dfg-eager
	stress/load-varargs-then-inlined-call.js.dfg-eager-no-cjit-validate
	stress/load-varargs-then-inlined-call.js.no-cjit-validate-phases
	stress/load-varargs-then-inlined-call.js.no-llint

Results for JSC stress tests:
    94 failures found.
Comment 1 Filip Pizlo 2015-02-18 15:13:14 PST
I wonder if this is because of EABI.  Those new callOperation() overflows may need to be tweaked to respect EABI's treatment of 64-bit values.
Comment 2 Csaba Osztrogonác 2015-02-18 23:37:10 PST
(In reply to comment #1)
> I wonder if this is because of EABI.  Those new callOperation() overflows
> may need to be tweaked to respect EABI's treatment of 64-bit values.

Many thanks for the hint, I chekced the new call functions, it 
seems the problem is exactly this. I'll prepare the fix soon.
Comment 3 Csaba Osztrogonác 2015-02-19 00:51:50 PST
Created attachment 246885 [details]
Patch

fixed, tested, all tests pass now
Comment 4 Zoltan Herczeg 2015-02-19 01:45:32 PST
Lgtm.
Comment 5 WebKit Commit Bot 2015-02-19 07:46:22 PST
Comment on attachment 246885 [details]
Patch

Clearing flags on attachment: 246885

Committed r180345: <http://trac.webkit.org/changeset/180345>
Comment 6 WebKit Commit Bot 2015-02-19 07:46:25 PST
All reviewed patches have been landed.  Closing bug.
Comment 7 Csaba Osztrogonác 2015-02-25 01:03:09 PST
*** Bug 141954 has been marked as a duplicate of this bug. ***