Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Mark Lam
committed
Nov 10, 2022
1 parent
fa2a14f
commit c8ec8e9
Showing
53 changed files
with
223 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.