[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