Title: [280704] trunk/Source/_javascript_Core
- Revision
- 280704
- Author
- [email protected]
- Date
- 2021-08-05 15:39:57 -0700 (Thu, 05 Aug 2021)
Log Message
REGRESSION (r280507): ASSERTION FAILED: !undominatedPhis.contains(value) in JSC::B3::(anonymous namespace)::Validater::validatePhisAreDominatedByUpsilons()
https://bugs.webkit.org/show_bug.cgi?id=228838
<rdar://problem/81579314>
Reviewed by Geoffrey Garen.
When I added validation of the dominance of Phis by their Upsilons, I checked two things:
- There is no path from the entry point to a Phi without going through a corresponding Upsilon (the actual dominance check)
- There is no way to execute a Phi twice without going through a corresponding Upsilon in between
The second property is not actually true in B3 IR, I had misunderstood that part of the meaning of Phis/Upsilons.
So this patch just removes this second check.
It has no security/stability/performance implication: this is validation code, which runs automatically in debug mode, but should not run at all on customer machines.
* b3/B3Validate.cpp:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (280703 => 280704)
--- trunk/Source/_javascript_Core/ChangeLog 2021-08-05 20:56:52 UTC (rev 280703)
+++ trunk/Source/_javascript_Core/ChangeLog 2021-08-05 22:39:57 UTC (rev 280704)
@@ -1,3 +1,21 @@
+2021-08-05 Robin Morisset <[email protected]>
+
+ REGRESSION (r280507): ASSERTION FAILED: !undominatedPhis.contains(value) in JSC::B3::(anonymous namespace)::Validater::validatePhisAreDominatedByUpsilons()
+ https://bugs.webkit.org/show_bug.cgi?id=228838
+ <rdar://problem/81579314>
+
+ Reviewed by Geoffrey Garen.
+
+ When I added validation of the dominance of Phis by their Upsilons, I checked two things:
+ - There is no path from the entry point to a Phi without going through a corresponding Upsilon (the actual dominance check)
+ - There is no way to execute a Phi twice without going through a corresponding Upsilon in between
+ The second property is not actually true in B3 IR, I had misunderstood that part of the meaning of Phis/Upsilons.
+ So this patch just removes this second check.
+
+ It has no security/stability/performance implication: this is validation code, which runs automatically in debug mode, but should not run at all on customer machines.
+
+ * b3/B3Validate.cpp:
+
2021-08-05 Michael Catanzaro <[email protected]>
GCC 11 builds should use -Wno-array-bounds, -Wno-nonnull
Modified: trunk/Source/_javascript_Core/b3/B3Validate.cpp (280703 => 280704)
--- trunk/Source/_javascript_Core/b3/B3Validate.cpp 2021-08-05 20:56:52 UTC (rev 280703)
+++ trunk/Source/_javascript_Core/b3/B3Validate.cpp 2021-08-05 22:39:57 UTC (rev 280704)
@@ -677,7 +677,6 @@
undominatedPhis.remove(value->as<UpsilonValue>()->phi());
break;
case Phi:
- VALIDATE(!undominatedPhis.contains(value), ("At ", *value));
undominatedPhis.add(value);
break;
default:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes