Changeset 226725 in webkit for trunk/Source/JavaScriptCore/heap/MarkingConstraint.cpp
- Timestamp:
- Jan 10, 2018, 11:41:12 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/MarkingConstraint.cpp
r226667 r226725 52 52 } 53 53 54 voidMarkingConstraint::execute(SlotVisitor& visitor)54 ConstraintParallelism MarkingConstraint::execute(SlotVisitor& visitor) 55 55 { 56 56 VisitCounter visitCounter(visitor); 57 executeImpl(visitor);57 ConstraintParallelism result = executeImpl(visitor); 58 58 m_lastVisitCount += visitCounter.visitCount(); 59 59 if (verboseMarkingConstraint && visitCounter.visitCount()) 60 60 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; 61 67 } 62 68 … … 82 88 } 83 89 84 void MarkingConstraint::doParallelWork(SlotVisitor& visitor , SharedTask<void(SlotVisitor&)>& task)90 void MarkingConstraint::doParallelWork(SlotVisitor& visitor) 85 91 { 86 92 VisitCounter visitCounter(visitor); 87 task.run(visitor);93 doParallelWorkImpl(visitor); 88 94 if (verboseMarkingConstraint && visitCounter.visitCount()) 89 95 dataLog("(", abbreviatedName(), " visited ", visitCounter.visitCount(), " in doParallelWork)"); … … 94 100 } 95 101 102 void 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 96 111 void MarkingConstraint::prepareToExecuteImpl(const AbstractLocker&, SlotVisitor&) 112 { 113 } 114 115 void MarkingConstraint::doParallelWorkImpl(SlotVisitor&) 116 { 117 UNREACHABLE_FOR_PLATFORM(); 118 } 119 120 void MarkingConstraint::finishParallelWorkImpl(SlotVisitor&) 97 121 { 98 122 }
Note:
See TracChangeset
for help on using the changeset viewer.