[webkit-changes] [WebKit/WebKit] c8ec8e: Add Options::allowDoubleShape() for testing.
EWS
noreply at github.com
Thu Nov 10 09:51:18 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c8ec8e9493510f0f1dad79270006439ebda61001
https://github.com/WebKit/WebKit/commit/c8ec8e9493510f0f1dad79270006439ebda61001
Author: Mark Lam <mark.lam at apple.com>
Date: 2022-11-10 (Thu, 10 Nov 2022)
Changed paths:
M JSTests/microbenchmarks/bit-test-constant.js
M JSTests/microbenchmarks/memcpy-typed-loop-large.js
M JSTests/stress/arith-abs-on-various-types.js
M JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js
M JSTests/stress/arith-acos-on-various-types.js
M JSTests/stress/arith-acosh-on-various-types.js
M JSTests/stress/arith-asin-on-various-types.js
M JSTests/stress/arith-asinh-on-various-types.js
M JSTests/stress/arith-atan-on-various-types.js
M JSTests/stress/arith-atanh-on-various-types.js
M JSTests/stress/arith-cbrt-on-various-types.js
M JSTests/stress/arith-ceil-on-various-types.js
M JSTests/stress/arith-clz32-on-various-types.js
M JSTests/stress/arith-cos-on-various-types.js
M JSTests/stress/arith-cosh-on-various-types.js
M JSTests/stress/arith-expm1-on-various-types.js
M JSTests/stress/arith-floor-on-various-types.js
M JSTests/stress/arith-fround-on-various-types.js
M JSTests/stress/arith-log10-on-various-types.js
M JSTests/stress/arith-log2-on-various-types.js
M JSTests/stress/arith-negate-on-various-types.js
M JSTests/stress/arith-round-on-various-types.js
M JSTests/stress/arith-sin-on-various-types.js
M JSTests/stress/arith-sinh-on-various-types.js
M JSTests/stress/arith-sqrt-on-various-types.js
M JSTests/stress/arith-tan-on-various-types.js
M JSTests/stress/arith-tanh-on-various-types.js
M JSTests/stress/arith-trunc-on-various-types.js
M JSTests/stress/array-slice-cow.js
M JSTests/stress/arrayprofile-should-not-convert-get-by-val-cow.js
M JSTests/stress/bit-op-with-object-returning-int32.js
M JSTests/stress/bitwise-not-fixup-rules.js
M JSTests/stress/compare-strict-eq-on-various-types.js
M JSTests/stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js
M JSTests/stress/int8-repeat-in-then-out-of-bounds.js
M JSTests/stress/regress-189028.js
M Source/JavaScriptCore/bytecode/AccessCase.cpp
M Source/JavaScriptCore/bytecode/ArrayProfile.h
M Source/JavaScriptCore/bytecode/Repatch.cpp
M Source/JavaScriptCore/dfg/DFGArrayMode.cpp
M Source/JavaScriptCore/dfg/DFGOperations.cpp
M Source/JavaScriptCore/runtime/IndexingType.h
M Source/JavaScriptCore/runtime/JSArrayInlines.h
M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
M Source/JavaScriptCore/runtime/JSImmutableButterfly.h
M Source/JavaScriptCore/runtime/JSObject.cpp
M Source/JavaScriptCore/runtime/Options.cpp
M Source/JavaScriptCore/runtime/OptionsList.h
M Source/JavaScriptCore/runtime/StructureTransitionTable.h
M Source/JavaScriptCore/runtime/VM.cpp
M Source/JavaScriptCore/tools/JSDollarVM.cpp
M Source/WebCore/bindings/js/JSDOMConvertSequences.h
M Tools/Scripts/run-jsc-stress-tests
Log Message:
-----------
Add Options::allowDoubleShape() for testing.
https://bugs.webkit.org/show_bug.cgi?id=247548
<rdar://problem/102013094>
Reviewed by Yusuke Suzuki.
1. Added Options::allowDoubleShape() which forces contiguous arrays to be used instead
of double arrays. Also added lots of ASSERTs to confirm that Options::allowDoubleShape()
is true when double shaped arrays are in use.
2. Added $vm.exit() to enable exiting early. This is needed to allow tests to exit early
without failing if they require JIT but JIT is disabled.
3. Added $vm.allowDoubleShape() to check the state of Options::allowDoubleShape(). This
is needed for tests that assert the shape of arrays.
4. Fixed up JSC stress tests to handle the case of running with --allowDoubleShape=false.
5. Fixed up JSC stress tests to handle the case of running without the JIT since
--allowDoubleShape=false also disables the JIT for now.
6. Added a lockdown configuration for JSC stress tests.
* JSTests/microbenchmarks/bit-test-constant.js:
* JSTests/microbenchmarks/memcpy-typed-loop-large.js:
* JSTests/stress/arith-abs-on-various-types.js:
* JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js:
* JSTests/stress/arith-acos-on-various-types.js:
* JSTests/stress/arith-acosh-on-various-types.js:
* JSTests/stress/arith-asin-on-various-types.js:
* JSTests/stress/arith-asinh-on-various-types.js:
* JSTests/stress/arith-atan-on-various-types.js:
* JSTests/stress/arith-atanh-on-various-types.js:
* JSTests/stress/arith-cbrt-on-various-types.js:
* JSTests/stress/arith-ceil-on-various-types.js:
* JSTests/stress/arith-clz32-on-various-types.js:
* JSTests/stress/arith-cos-on-various-types.js:
* JSTests/stress/arith-cosh-on-various-types.js:
* JSTests/stress/arith-expm1-on-various-types.js:
* JSTests/stress/arith-floor-on-various-types.js:
* JSTests/stress/arith-fround-on-various-types.js:
* JSTests/stress/arith-log10-on-various-types.js:
* JSTests/stress/arith-log2-on-various-types.js:
* JSTests/stress/arith-negate-on-various-types.js:
* JSTests/stress/arith-round-on-various-types.js:
* JSTests/stress/arith-sin-on-various-types.js:
* JSTests/stress/arith-sinh-on-various-types.js:
* JSTests/stress/arith-sqrt-on-various-types.js:
* JSTests/stress/arith-tan-on-various-types.js:
* JSTests/stress/arith-tanh-on-various-types.js:
* JSTests/stress/arith-trunc-on-various-types.js:
* JSTests/stress/array-slice-cow.js:
(testDouble):
* JSTests/stress/arrayprofile-should-not-convert-get-by-val-cow.js:
(withArrayArgDouble):
(withArrayLiteralDouble):
* JSTests/stress/bit-op-with-object-returning-int32.js:
* JSTests/stress/bitwise-not-fixup-rules.js:
* JSTests/stress/compare-strict-eq-on-various-types.js:
* JSTests/stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js:
* JSTests/stress/int8-repeat-in-then-out-of-bounds.js:
* JSTests/stress/regress-189028.js:
* Source/JavaScriptCore/bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
* Source/JavaScriptCore/bytecode/ArrayProfile.h:
(JSC::shouldUseDouble):
* Source/JavaScriptCore/bytecode/Repatch.cpp:
(JSC::tryCacheArrayGetByVal):
(JSC::tryCacheArrayPutByVal):
* Source/JavaScriptCore/dfg/DFGArrayMode.cpp:
(JSC::DFG::toIndexingShape):
* Source/JavaScriptCore/dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/runtime/IndexingType.h:
(JSC::indexingTypeForValue):
* Source/JavaScriptCore/runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* Source/JavaScriptCore/runtime/JSImmutableButterfly.h:
(JSC::JSImmutableButterfly::createFromArray):
* Source/JavaScriptCore/runtime/JSObject.cpp:
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedForValue):
(JSC::JSObject::createInitialForValueAndSet):
(JSC::JSObject::convertInt32ForValue):
(JSC::JSObject::tryMakeWritableDoubleSlow):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):
(JSC::JSObject::countElements):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::Options::recomputeDependentOptions):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/runtime/StructureTransitionTable.h:
(JSC::newIndexingType):
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::VM):
* Source/JavaScriptCore/tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
* Source/WebCore/bindings/js/JSDOMConvertSequences.h:
(WebCore::Detail::NumericSequenceConverter::convertArray):
* Tools/Scripts/run-jsc-stress-tests:
Canonical link: https://commits.webkit.org/256537@main
More information about the webkit-changes
mailing list