Changeset 190589 in webkit for trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp
- Timestamp:
- Oct 5, 2015, 4:31:53 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp
r190546 r190589 1308 1308 bool didTryToEnterIntoInlinedLoops = false; 1309 1309 for (InlineCallFrame* inlineCallFrame = exit->m_codeOrigin.inlineCallFrame; inlineCallFrame; inlineCallFrame = inlineCallFrame->directCaller.inlineCallFrame) { 1310 if (inlineCallFrame-> executable->didTryToEnterInLoop()) {1310 if (inlineCallFrame->baselineCodeBlock->ownerScriptExecutable()->didTryToEnterInLoop()) { 1311 1311 didTryToEnterIntoInlinedLoops = true; 1312 1312 break; … … 1378 1378 // We need to compile the code. 1379 1379 compile( 1380 *vm, codeBlock->newReplacement() .get(), codeBlock, FTLMode, UINT_MAX,1381 Operands<JSValue>(), ToFTLDeferredCompilationCallback::create( codeBlock));1380 *vm, codeBlock->newReplacement(), codeBlock, FTLMode, UINT_MAX, 1381 Operands<JSValue>(), ToFTLDeferredCompilationCallback::create()); 1382 1382 } 1383 1383 … … 1464 1464 return 0; 1465 1465 1466 if (CodeBlock* entryBlock = jitCode->osrEntryBlock .get()) {1466 if (CodeBlock* entryBlock = jitCode->osrEntryBlock()) { 1467 1467 void* address = FTL::prepareOSREntry( 1468 1468 exec, codeBlock, entryBlock, bytecodeIndex, streamIndex); … … 1478 1478 // OSR entry failed. Oh no! This implies that we need to retry. We retry 1479 1479 // without exponential backoff and we only do this for the entry code block. 1480 jitCode-> osrEntryBlock = nullptr;1480 jitCode->clearOSREntryBlock(); 1481 1481 jitCode->osrEntryRetry = 0; 1482 1482 return 0; … … 1495 1495 jitCode->reconstruct( 1496 1496 exec, codeBlock, CodeOrigin(bytecodeIndex), streamIndex, mustHandleValues); 1497 RefPtr<CodeBlock>replacementCodeBlock = codeBlock->newReplacement();1497 CodeBlock* replacementCodeBlock = codeBlock->newReplacement(); 1498 1498 CompilationResult forEntryResult = compile( 1499 *vm, replacementCodeBlock.get(), codeBlock, FTLForOSREntryMode, bytecodeIndex, 1500 mustHandleValues, ToFTLForOSREntryDeferredCompilationCallback::create(codeBlock)); 1501 1502 if (forEntryResult != CompilationSuccessful) { 1503 ASSERT(forEntryResult == CompilationDeferred || replacementCodeBlock->hasOneRef()); 1499 *vm, replacementCodeBlock, codeBlock, FTLForOSREntryMode, bytecodeIndex, 1500 mustHandleValues, ToFTLForOSREntryDeferredCompilationCallback::create()); 1501 1502 if (forEntryResult != CompilationSuccessful) 1504 1503 return 0; 1505 }1506 1504 1507 1505 // It's possible that the for-entry compile already succeeded. In that case OSR … … 1509 1507 // We signal to try again after a while if that happens. 1510 1508 void* address = FTL::prepareOSREntry( 1511 exec, codeBlock, jitCode->osrEntryBlock .get(), bytecodeIndex, streamIndex);1509 exec, codeBlock, jitCode->osrEntryBlock(), bytecodeIndex, streamIndex); 1512 1510 return static_cast<char*>(address); 1513 1511 }
Note:
See TracChangeset
for help on using the changeset viewer.