Changeset 244505 in webkit
- Timestamp:
- Apr 22, 2019 11:30:16 AM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r244501 r244505 1 2019-04-22 Yusuke Suzuki <ysuzuki@apple.com> 2 3 [JSC] useJIT should subsume useRegExpJIT 4 https://bugs.webkit.org/show_bug.cgi?id=197153 5 6 Reviewed by Alex Christensen. 7 8 useJIT should subsume useRegExpJIT. We should immediately disable JIT feature if useJIT = false, 9 even if useRegExpJIT is true. 10 11 * dfg/DFGCapabilities.cpp: 12 (JSC::DFG::isSupported): 13 * runtime/Options.cpp: 14 (JSC::recomputeDependentOptions): 15 * runtime/RegExp.cpp: 16 (JSC::RegExp::compile): 17 (JSC::RegExp::compileMatchOnly): 18 * runtime/VM.cpp: 19 (JSC::enableAssembler): 20 (JSC::VM::canUseRegExpJIT): Deleted. 21 * runtime/VM.h: 22 1 23 2019-04-22 Basuke Suzuki <basuke.suzuki@sony.com> 2 24 -
trunk/Source/JavaScriptCore/dfg/DFGCapabilities.cpp
r243127 r244505 39 39 bool isSupported() 40 40 { 41 return Options::useDFGJIT() 42 && MacroAssembler::supportsFloatingPoint(); 41 return VM::canUseJIT() && Options::useDFGJIT() && MacroAssembler::supportsFloatingPoint(); 43 42 } 44 43 -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r244233 r244505 393 393 Options::useLLInt() = true; 394 394 Options::useJIT() = false; 395 Options::useBaselineJIT() = false; 395 396 Options::useDFGJIT() = false; 396 397 Options::useFTLJIT() = false; 397 398 Options::useDOMJIT() = false; 399 Options::useRegExpJIT() = false; 400 #endif 401 #if !ENABLE(CONCURRENT_JS) 402 Options::useConcurrentJIT() = false; 398 403 #endif 399 404 #if !ENABLE(YARR_JIT) 400 405 Options::useRegExpJIT() = false; 401 #endif402 #if !ENABLE(CONCURRENT_JS)403 Options::useConcurrentJIT() = false;404 406 #endif 405 407 #if !ENABLE(DFG_JIT) … … 413 415 #if !CPU(X86_64) && !CPU(ARM64) 414 416 Options::useConcurrentGC() = false; 415 #endif416 417 #if ENABLE(JIT) && CPU(X86)418 // Disable JIT on IA-32 if SSE2 is not present419 if (!MacroAssemblerX86::supportsFloatingPoint())420 Options::useJIT() = false;421 417 #endif 422 418 -
trunk/Source/JavaScriptCore/runtime/RegExp.cpp
r243642 r244505 259 259 260 260 #if ENABLE(YARR_JIT) 261 if (!pattern.containsUnsignedLengthPattern() && VM::canUse RegExpJIT()261 if (!pattern.containsUnsignedLengthPattern() && VM::canUseJIT() && Options::useRegExpJIT() 262 262 #if !ENABLE(YARR_JIT_BACKREFERENCES) 263 263 && !pattern.m_containsBackreferences … … 317 317 318 318 #if ENABLE(YARR_JIT) 319 if (!pattern.containsUnsignedLengthPattern() && VM::canUse RegExpJIT()319 if (!pattern.containsUnsignedLengthPattern() && VM::canUseJIT() && Options::useRegExpJIT() 320 320 #if !ENABLE(YARR_JIT_BACKREFERENCES) 321 321 && !pattern.m_containsBackreferences -
trunk/Source/JavaScriptCore/runtime/VM.cpp
r243925 r244505 191 191 static bool enableAssembler() 192 192 { 193 if (!Options::useJIT() && !Options::useRegExpJIT())193 if (!Options::useJIT()) 194 194 return false; 195 195 … … 231 231 #endif 232 232 s_canUseJIT = VM::canUseAssembler() && Options::useJIT(); 233 #endif234 }235 236 bool VM::canUseRegExpJIT()237 {238 #if ENABLE(YARR_JIT)239 static std::once_flag onceKey;240 static bool enabled = false;241 std::call_once(onceKey, [] {242 enabled = VM::canUseAssembler() && Options::useRegExpJIT();243 });244 return enabled;245 #else246 return false; // interpreter only247 233 #endif 248 234 } -
trunk/Source/JavaScriptCore/runtime/VM.h
r243886 r244505 634 634 635 635 static JS_EXPORT_PRIVATE bool canUseAssembler(); 636 static JS_EXPORT_PRIVATE bool canUseRegExpJIT();637 636 static JS_EXPORT_PRIVATE bool isInMiniMode(); 638 637
Note: See TracChangeset
for help on using the changeset viewer.