⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 280704 in webkit


Ignore:
Timestamp:
Aug 5, 2021, 3:39:57 PM (5 years ago)
Author:
rmorisset@apple.com
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:
Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r280689 r280704  
     12021-08-05  Robin Morisset  <rmorisset@apple.com>
     2
     3        REGRESSION (r280507): ASSERTION FAILED: !undominatedPhis.contains(value) in JSC::B3::(anonymous namespace)::Validater::validatePhisAreDominatedByUpsilons()
     4        https://bugs.webkit.org/show_bug.cgi?id=228838
     5        <rdar://problem/81579314>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        When I added validation of the dominance of Phis by their Upsilons, I checked two things:
     10        - There is no path from the entry point to a Phi without going through a corresponding Upsilon (the actual dominance check)
     11        - There is no way to execute a Phi twice without going through a corresponding Upsilon in between
     12        The second property is not actually true in B3 IR, I had misunderstood that part of the meaning of Phis/Upsilons.
     13        So this patch just removes this second check.
     14
     15        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.
     16
     17        * b3/B3Validate.cpp:
     18
    1192021-08-05  Michael Catanzaro  <mcatanzaro@gnome.org>
    220
  • trunk/Source/JavaScriptCore/b3/B3Validate.cpp

    r280507 r280704  
    678678                        break;
    679679                    case Phi:
    680                         VALIDATE(!undominatedPhis.contains(value), ("At ", *value));
    681680                        undominatedPhis.add(value);
    682681                        break;
Note: See TracChangeset for help on using the changeset viewer.