Changeset 191463 in webkit
- Timestamp:
- Oct 22, 2015 11:36:28 AM (9 years ago)
- Location:
- branches/safari-601.1.46-branch
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-601.1.46-branch/Source/JavaScriptCore/ChangeLog
r191462 r191463 1 2015-10-21 Matthew Hanson <matthew_hanson@apple.com> 2 3 Merge r191395. rdar://problem/22846455 4 5 2015-10-21 Filip Pizlo <fpizlo@apple.com> 6 7 Failures in PutStackSinkingPhase should be less severe 8 https://bugs.webkit.org/show_bug.cgi?id=150400 9 10 Reviewed by Geoffrey Garen. 11 12 Make the PutStackSinkingPhase abort instead of asserting. To test that it's OK to not have 13 PutStackSinkingPhase run, this adds a test mode where we run without PutStackSinkingPhase. 14 15 * dfg/DFGPlan.cpp: Make it possible to not run PutStackSinkingPhase for tests. 16 (JSC::DFG::Plan::compileInThreadImpl): 17 * dfg/DFGPutStackSinkingPhase.cpp: PutStackSinkingPhase should abort instead of asserting, except when validation is enabled. 18 * runtime/Options.h: Add an option for disabling PutStackSinkingPhase. 19 1 20 2015-10-20 Matthew Hanson <matthew_hanson@apple.com> 2 21 -
branches/safari-601.1.46-branch/Source/JavaScriptCore/dfg/DFGPlan.cpp
r186753 r191463 355 355 // Ideally, these would be run to fixpoint with the object allocation sinking phase. 356 356 performArgumentsElimination(dfg); 357 performPutStackSinking(dfg); 357 if (Options::usePutStackSinking()) 358 performPutStackSinking(dfg); 358 359 359 360 performConstantHoisting(dfg); -
branches/safari-601.1.46-branch/Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp
r184781 r191463 231 231 232 232 if (node->op() == GetStack) { 233 // Handle the case that the input doesn't match our requirements. This is 234 // really a bug, but it's a benign one if we simply don't run this phase. 235 // It usually arises because of patterns like: 236 // 237 // if (thing) 238 // PutStack() 239 // ... 240 // if (thing) 241 // GetStack() 242 // 243 // Or: 244 // 245 // if (never happens) 246 // GetStack() 247 // 248 // Because this phase runs early in SSA, it should be sensible to enforce 249 // that no such code pattern has arisen yet. So, when validation is 250 // enabled, we assert that we aren't seeing this. But with validation 251 // disabled we silently let this fly and we just abort this phase. 252 // FIXME: Get rid of all remaining cases of conflicting GetStacks. 253 // https://bugs.webkit.org/show_bug.cgi?id=150398 254 255 bool isConflicting = 256 deferred.operand(node->stackAccessData()->local) == ConflictingFlush; 257 258 if (validationEnabled()) 259 DFG_ASSERT(m_graph, node, !isConflicting); 260 261 if (isConflicting) { 262 // Oh noes! Abort!! 263 return false; 264 } 265 233 266 // A GetStack doesn't affect anything, since we know which local we are reading 234 267 // from. -
branches/safari-601.1.46-branch/Source/JavaScriptCore/runtime/Options.h
r187301 r191463 191 191 v(bool, enableMovHintRemoval, true, nullptr) \ 192 192 v(bool, enableObjectAllocationSinking, true, nullptr) \ 193 v(bool, usePutStackSinking, true, nullptr) \ 193 194 \ 194 195 v(bool, enableConcurrentJIT, true, "allows the DFG / FTL compilation in threads other than the executing JS thread") \ -
branches/safari-601.1.46-branch/Tools/ChangeLog
r191459 r191463 1 2015-10-21 Matthew Hanson <matthew_hanson@apple.com> 2 3 Merge r191395. rdar://problem/22846455 4 5 2015-10-21 Filip Pizlo <fpizlo@apple.com> 6 7 Failures in PutStackSinkingPhase should be less severe 8 https://bugs.webkit.org/show_bug.cgi?id=150400 9 10 Reviewed by Geoffrey Garen. 11 12 Add a test mode for no PutStackSinkingPhase. 13 14 * Scripts/run-jsc-stress-tests: 15 1 16 2015-10-20 Matthew Hanson <matthew_hanson@apple.com> 2 17 -
branches/safari-601.1.46-branch/Tools/Scripts/run-jsc-stress-tests
r187301 r191463 711 711 end 712 712 713 def runFTLNoCJITNoPutStackValidate 714 run("ftl-no-cjit-no-put-stack-validate", "--validateGraph=true", "--usePutStackSinking=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL 715 end 716 713 717 def runFTLNoCJITNoInlineValidate 714 718 run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL … … 774 778 runFTLNoCJITValidate 775 779 runFTLNoCJITNoInlineValidate 780 runFTLNoCJITNoPutStackValidate 776 781 runFTLEager 777 782 runFTLEagerNoCJITValidate
Note: See TracChangeset
for help on using the changeset viewer.