Changeset 179392 in webkit for trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
- Timestamp:
- Jan 29, 2015, 8:28:36 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r179372 r179392 1 1 /* 2 * Copyright (C) 2008 -2010, 2012-2015Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2009, 2010, 2012, 2013, 2014 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2008 Cameron Zwarich <[email protected]> 4 4 * … … 2175 2175 while (m_incomingCalls.begin() != m_incomingCalls.end()) 2176 2176 m_incomingCalls.begin()->remove(); 2177 while (m_incomingPolymorphicCalls.begin() != m_incomingPolymorphicCalls.end())2178 m_incomingPolymorphicCalls.begin()->remove();2179 2177 2180 2178 // Note that our outgoing calls will be removed from other CodeBlocks' … … 3043 3041 m_incomingCalls.push(incoming); 3044 3042 } 3045 3046 void CodeBlock::linkIncomingPolymorphicCall(ExecState* callerFrame, PolymorphicCallNode* incoming)3047 {3048 noticeIncomingCall(callerFrame);3049 m_incomingPolymorphicCalls.push(incoming);3050 }3051 3043 #endif // ENABLE(JIT) 3052 3044 … … 3056 3048 m_incomingLLIntCalls.begin()->unlink(); 3057 3049 #if ENABLE(JIT) 3058 if (m_incomingCalls.isEmpty() && m_incomingPolymorphicCalls.isEmpty())3050 if (m_incomingCalls.isEmpty()) 3059 3051 return; 3060 3052 RepatchBuffer repatchBuffer(this); 3061 3053 while (m_incomingCalls.begin() != m_incomingCalls.end()) 3062 3054 m_incomingCalls.begin()->unlink(repatchBuffer); 3063 while (m_incomingPolymorphicCalls.begin() != m_incomingPolymorphicCalls.end())3064 m_incomingPolymorphicCalls.begin()->unlink(repatchBuffer);3065 3055 #endif // ENABLE(JIT) 3066 3056 } … … 3256 3246 3257 3247 if (Options::verboseCallLink()) 3258 dataLog("Noticing call link from ", pointerDump(callerCodeBlock), " to ", *this, "\n"); 3259 3260 #if ENABLE(DFG_JIT) 3248 dataLog("Noticing call link from ", *callerCodeBlock, " to ", *this, "\n"); 3249 3261 3250 if (!m_shouldAlwaysBeInlined) 3262 3251 return; 3263 3264 if (!callerCodeBlock) { 3265 m_shouldAlwaysBeInlined = false; 3266 if (Options::verboseCallLink()) 3267 dataLog(" Clearing SABI because caller is native.\n"); 3268 return; 3269 } 3270 3252 3253 #if ENABLE(DFG_JIT) 3271 3254 if (!hasBaselineJITProfiling()) 3272 3255 return; … … 3296 3279 } 3297 3280 3298 if (JITCode::isOptimizingJIT(callerCodeBlock->jitType())) {3299 m_shouldAlwaysBeInlined = false;3300 if (Options::verboseCallLink())3301 dataLog(" Clearing SABI bcause caller was already optimized.\n");3302 return;3303 }3304 3305 3281 if (callerCodeBlock->codeType() != FunctionCode) { 3306 3282 // If the caller is either eval or global code, assume that that won't be … … 3323 3299 return; 3324 3300 } 3325 3326 if (callerCodeBlock->m_capabilityLevelState == DFG::CapabilityLevelNotSet) { 3327 dataLog("In call from ", *callerCodeBlock, " ", callerFrame->codeOrigin(), " to ", *this, ": caller's DFG capability level is not set.\n"); 3328 CRASH(); 3329 } 3301 3302 RELEASE_ASSERT(callerCodeBlock->m_capabilityLevelState != DFG::CapabilityLevelNotSet); 3330 3303 3331 3304 if (canCompile(callerCodeBlock->m_capabilityLevelState))
Note:
See TracChangeset
for help on using the changeset viewer.