Title: [279605] branches/safari-612.1.22.0-branch
Revision
279605
Author
rubent...@apple.com
Date
2021-07-06 12:30:34 -0700 (Tue, 06 Jul 2021)

Log Message

Cherry-pick r279449. rdar://problem/80212096

    Turn off data ICs by default
    https://bugs.webkit.org/show_bug.cgi?id=227334
    <rdar://problem/79802812>

    Reviewed by Yusuke Suzuki.

    JSTests:

    * microbenchmarks/deltablue-varargs.js:
    * microbenchmarks/richards-try-catch.js:

    Source/_javascript_Core:

    There are GC crashes that are caused by access data IC sharing. This
    patch is both turning off data IC sharing by default, and turning off data
    ICs by default.

    We should re-enable this once we figure out the issue:
    https://bugs.webkit.org/show_bug.cgi?id=227551

    Some of our testing modes are still running with data ICs on, so the code doesn't
    bit rot. And a select few tests are running with data IC sharing on, for
    similar reasons, even though we know it has issues. If those tests start
    crashing, we'll just disable sharing completely until the issue is resolved.

    * bytecode/PolymorphicAccess.cpp:
    (JSC::PolymorphicAccess::regenerate):
    * runtime/OptionsList.h:

    Tools:

    * Scripts/run-jsc-stress-tests:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279449 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-612.1.22.0-branch/JSTests/ChangeLog (279604 => 279605)


--- branches/safari-612.1.22.0-branch/JSTests/ChangeLog	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/JSTests/ChangeLog	2021-07-06 19:30:34 UTC (rev 279605)
@@ -1,3 +1,53 @@
+2021-07-06  Ruben Turcios  <rubent...@apple.com>
+
+        Cherry-pick r279449. rdar://problem/80212096
+
+    Turn off data ICs by default
+    https://bugs.webkit.org/show_bug.cgi?id=227334
+    <rdar://problem/79802812>
+    
+    Reviewed by Yusuke Suzuki.
+    
+    JSTests:
+    
+    * microbenchmarks/deltablue-varargs.js:
+    * microbenchmarks/richards-try-catch.js:
+    
+    Source/_javascript_Core:
+    
+    There are GC crashes that are caused by access data IC sharing. This
+    patch is both turning off data IC sharing by default, and turning off data
+    ICs by default.
+    
+    We should re-enable this once we figure out the issue:
+    https://bugs.webkit.org/show_bug.cgi?id=227551
+    
+    Some of our testing modes are still running with data ICs on, so the code doesn't
+    bit rot. And a select few tests are running with data IC sharing on, for
+    similar reasons, even though we know it has issues. If those tests start
+    crashing, we'll just disable sharing completely until the issue is resolved.
+    
+    * bytecode/PolymorphicAccess.cpp:
+    (JSC::PolymorphicAccess::regenerate):
+    * runtime/OptionsList.h:
+    
+    Tools:
+    
+    * Scripts/run-jsc-stress-tests:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-06-30  Saam Barati  <sbar...@apple.com>
+
+            Turn off data ICs by default
+            https://bugs.webkit.org/show_bug.cgi?id=227334
+            <rdar://problem/79802812>
+
+            Reviewed by Yusuke Suzuki.
+
+            * microbenchmarks/deltablue-varargs.js:
+            * microbenchmarks/richards-try-catch.js:
+
 2021-06-25  Guillaume Emont  <guijem...@igalia.com>
 
         Unskip stress/call-apply-exponential-bytecode-size.js on most platforms

Modified: branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/deltablue-varargs.js (279604 => 279605)


--- branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/deltablue-varargs.js	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/deltablue-varargs.js	2021-07-06 19:30:34 UTC (rev 279605)
@@ -1,4 +1,6 @@
 //@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
+//@ requireOptions("--useDataIC=true", "--useDataICSharing=true")
+
 // Copyright 2008 the V8 project authors. All rights reserved.
 // Copyright 1996 John Maloney and Mario Wolczko.
 

Modified: branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/richards-try-catch.js (279604 => 279605)


--- branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/richards-try-catch.js	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/JSTests/microbenchmarks/richards-try-catch.js	2021-07-06 19:30:34 UTC (rev 279605)
@@ -1,4 +1,6 @@
 //@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
+//@ requireOptions("--useDataIC=true", "--useDataICSharing=true")
+
 // Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are

Modified: branches/safari-612.1.22.0-branch/Source/_javascript_Core/ChangeLog (279604 => 279605)


--- branches/safari-612.1.22.0-branch/Source/_javascript_Core/ChangeLog	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/Source/_javascript_Core/ChangeLog	2021-07-06 19:30:34 UTC (rev 279605)
@@ -1,5 +1,68 @@
 2021-07-06  Ruben Turcios  <rubent...@apple.com>
 
+        Cherry-pick r279449. rdar://problem/80212096
+
+    Turn off data ICs by default
+    https://bugs.webkit.org/show_bug.cgi?id=227334
+    <rdar://problem/79802812>
+    
+    Reviewed by Yusuke Suzuki.
+    
+    JSTests:
+    
+    * microbenchmarks/deltablue-varargs.js:
+    * microbenchmarks/richards-try-catch.js:
+    
+    Source/_javascript_Core:
+    
+    There are GC crashes that are caused by access data IC sharing. This
+    patch is both turning off data IC sharing by default, and turning off data
+    ICs by default.
+    
+    We should re-enable this once we figure out the issue:
+    https://bugs.webkit.org/show_bug.cgi?id=227551
+    
+    Some of our testing modes are still running with data ICs on, so the code doesn't
+    bit rot. And a select few tests are running with data IC sharing on, for
+    similar reasons, even though we know it has issues. If those tests start
+    crashing, we'll just disable sharing completely until the issue is resolved.
+    
+    * bytecode/PolymorphicAccess.cpp:
+    (JSC::PolymorphicAccess::regenerate):
+    * runtime/OptionsList.h:
+    
+    Tools:
+    
+    * Scripts/run-jsc-stress-tests:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-06-30  Saam Barati  <sbar...@apple.com>
+
+            Turn off data ICs by default
+            https://bugs.webkit.org/show_bug.cgi?id=227334
+            <rdar://problem/79802812>
+
+            Reviewed by Yusuke Suzuki.
+
+            There are GC crashes that are caused by access data IC sharing. This
+            patch is both turning off data IC sharing by default, and turning off data
+            ICs by default.
+
+            We should re-enable this once we figure out the issue:
+            https://bugs.webkit.org/show_bug.cgi?id=227551
+
+            Some of our testing modes are still running with data ICs on, so the code doesn't
+            bit rot. And a select few tests are running with data IC sharing on, for
+            similar reasons, even though we know it has issues. If those tests start
+            crashing, we'll just disable sharing completely until the issue is resolved.
+
+            * bytecode/PolymorphicAccess.cpp:
+            (JSC::PolymorphicAccess::regenerate):
+            * runtime/OptionsList.h:
+
+2021-07-06  Ruben Turcios  <rubent...@apple.com>
+
         Cherry-pick r279560. rdar://problem/80212171
 
     ActiveScratchBufferScope should take the buffer as argument

Modified: branches/safari-612.1.22.0-branch/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp (279604 => 279605)


--- branches/safari-612.1.22.0-branch/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp	2021-07-06 19:30:34 UTC (rev 279605)
@@ -522,7 +522,7 @@
 
     bool doesCalls = false;
     bool doesJSGetterSetterCalls = false;
-    bool canBeShared = true;
+    bool canBeShared = Options::useDataICSharing();
     Vector<JSCell*> cellsToMark;
     FixedVector<RefPtr<AccessCase>> keys(cases.size());
     unsigned index = 0;

Modified: branches/safari-612.1.22.0-branch/Source/_javascript_Core/runtime/OptionsList.h (279604 => 279605)


--- branches/safari-612.1.22.0-branch/Source/_javascript_Core/runtime/OptionsList.h	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/Source/_javascript_Core/runtime/OptionsList.h	2021-07-06 19:30:34 UTC (rev 279605)
@@ -546,8 +546,9 @@
     v(Bool, useSharedArrayBuffer, false, Normal, nullptr) \
     v(Bool, useTopLevelAwait, true, Normal, "allow the await keyword at the top level of a module.") \
     v(Bool, verboseExecutablePoolAllocation, false, Normal, nullptr) \
-    v(Bool, useDataIC, isARM64(), Normal, nullptr) \
+    v(Bool, useDataIC, false, Normal, nullptr) \
     v(Bool, useDataICInOptimizingJIT, false, Normal, nullptr) \
+    v(Bool, useDataICSharing, false, Normal, nullptr) \
 
 
 enum OptionEquivalence {

Modified: branches/safari-612.1.22.0-branch/Tools/ChangeLog (279604 => 279605)


--- branches/safari-612.1.22.0-branch/Tools/ChangeLog	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/Tools/ChangeLog	2021-07-06 19:30:34 UTC (rev 279605)
@@ -1,3 +1,52 @@
+2021-07-06  Ruben Turcios  <rubent...@apple.com>
+
+        Cherry-pick r279449. rdar://problem/80212096
+
+    Turn off data ICs by default
+    https://bugs.webkit.org/show_bug.cgi?id=227334
+    <rdar://problem/79802812>
+    
+    Reviewed by Yusuke Suzuki.
+    
+    JSTests:
+    
+    * microbenchmarks/deltablue-varargs.js:
+    * microbenchmarks/richards-try-catch.js:
+    
+    Source/_javascript_Core:
+    
+    There are GC crashes that are caused by access data IC sharing. This
+    patch is both turning off data IC sharing by default, and turning off data
+    ICs by default.
+    
+    We should re-enable this once we figure out the issue:
+    https://bugs.webkit.org/show_bug.cgi?id=227551
+    
+    Some of our testing modes are still running with data ICs on, so the code doesn't
+    bit rot. And a select few tests are running with data IC sharing on, for
+    similar reasons, even though we know it has issues. If those tests start
+    crashing, we'll just disable sharing completely until the issue is resolved.
+    
+    * bytecode/PolymorphicAccess.cpp:
+    (JSC::PolymorphicAccess::regenerate):
+    * runtime/OptionsList.h:
+    
+    Tools:
+    
+    * Scripts/run-jsc-stress-tests:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-06-30  Saam Barati  <sbar...@apple.com>
+
+            Turn off data ICs by default
+            https://bugs.webkit.org/show_bug.cgi?id=227334
+            <rdar://problem/79802812>
+
+            Reviewed by Yusuke Suzuki.
+
+            * Scripts/run-jsc-stress-tests:
+
 2021-06-29  Alan Coon  <alanc...@apple.com>
 
         Cherry-pick r279361. rdar://problem/79923766

Modified: branches/safari-612.1.22.0-branch/Tools/Scripts/run-jsc-stress-tests (279604 => 279605)


--- branches/safari-612.1.22.0-branch/Tools/Scripts/run-jsc-stress-tests	2021-07-06 19:25:04 UTC (rev 279604)
+++ branches/safari-612.1.22.0-branch/Tools/Scripts/run-jsc-stress-tests	2021-07-06 19:30:34 UTC (rev 279605)
@@ -788,7 +788,7 @@
 end
 
 def runFTLNoCJIT(*optionalTestSpecificOptions)
-    run("misc-ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
+    run("misc-ftl-no-cjit", "--useDataIC=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
 def runFTLNoCJITB3O0(*optionalTestSpecificOptions)
@@ -796,7 +796,7 @@
 end
 
 def runFTLNoCJITValidate(*optionalTestSpecificOptions)
-    run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--validateBCE=true", "--useSamplingProfiler=true", "--airForceIRCAllocator=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
+    run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--validateBCE=true", "--useSamplingProfiler=true", "--airForceIRCAllocator=true", "--useDataIC=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
 def runFTLNoCJITNoPutStackValidate(*optionalTestSpecificOptions)
@@ -820,7 +820,7 @@
 end
 
 def runFTLEager(*optionalTestSpecificOptions)
-    run("ftl-eager", "--airForceBriggsAllocator=true", "--useRandomizingExecutableIslandAllocation=true", "--forcePolyProto=true", *(FTL_OPTIONS + EAGER_OPTIONS + COLLECT_CONTINUOUSLY_OPTIONS + optionalTestSpecificOptions))
+    run("ftl-eager", "--airForceBriggsAllocator=true", "--useRandomizingExecutableIslandAllocation=true", "--forcePolyProto=true", "--useDataIC=true", *(FTL_OPTIONS + EAGER_OPTIONS + COLLECT_CONTINUOUSLY_OPTIONS + optionalTestSpecificOptions))
 end
 
 def runFTLEagerWatchdog(*optionalTestSpecificOptions)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to