Ignore:
Timestamp:
Jan 10, 2018, 11:41:12 AM (8 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r226667 and r226673.
https://bugs.webkit.org/show_bug.cgi?id=181488

This caused a flaky crash. (Requested by mlewis13 on #webkit).

Reverted changesets:

"CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226667

"REGRESSION (r226667): CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226673

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/MarkingConstraint.cpp

    r226667 r226725  
    5252}
    5353
    54 void MarkingConstraint::execute(SlotVisitor& visitor)
     54ConstraintParallelism MarkingConstraint::execute(SlotVisitor& visitor)
    5555{
    5656    VisitCounter visitCounter(visitor);
    57     executeImpl(visitor);
     57    ConstraintParallelism result = executeImpl(visitor);
    5858    m_lastVisitCount += visitCounter.visitCount();
    5959    if (verboseMarkingConstraint && visitCounter.visitCount())
    6060        dataLog("(", abbreviatedName(), " visited ", visitCounter.visitCount(), " in execute)");
     61    if (result == ConstraintParallelism::Parallel) {
     62        // It's illegal to produce parallel work if you haven't advertised it upfront because the solver
     63        // has optimizations for constraints that promise to never produce parallel work.
     64        RELEASE_ASSERT(m_parallelism == ConstraintParallelism::Parallel);
     65    }
     66    return result;
    6167}
    6268
     
    8288}
    8389
    84 void MarkingConstraint::doParallelWork(SlotVisitor& visitor, SharedTask<void(SlotVisitor&)>& task)
     90void MarkingConstraint::doParallelWork(SlotVisitor& visitor)
    8591{
    8692    VisitCounter visitCounter(visitor);
    87     task.run(visitor);
     93    doParallelWorkImpl(visitor);
    8894    if (verboseMarkingConstraint && visitCounter.visitCount())
    8995        dataLog("(", abbreviatedName(), " visited ", visitCounter.visitCount(), " in doParallelWork)");
     
    94100}
    95101
     102void MarkingConstraint::finishParallelWork(SlotVisitor& visitor)
     103{
     104    VisitCounter visitCounter(visitor);
     105    finishParallelWorkImpl(visitor);
     106    m_lastVisitCount += visitCounter.visitCount();
     107    if (verboseMarkingConstraint && visitCounter.visitCount())
     108        dataLog("(", abbreviatedName(), " visited ", visitCounter.visitCount(), " in finishParallelWork)");
     109}
     110
    96111void MarkingConstraint::prepareToExecuteImpl(const AbstractLocker&, SlotVisitor&)
     112{
     113}
     114
     115void MarkingConstraint::doParallelWorkImpl(SlotVisitor&)
     116{
     117    UNREACHABLE_FOR_PLATFORM();
     118}
     119
     120void MarkingConstraint::finishParallelWorkImpl(SlotVisitor&)
    97121{
    98122}
Note: See TracChangeset for help on using the changeset viewer.