Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
authordbatyai.u-szeged@partner.samsung.com <dbatyai.u-szeged@partner.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jun 2014 16:32:31 +0000 (16:32 +0000)
committerdbatyai.u-szeged@partner.samsung.com <dbatyai.u-szeged@partner.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jun 2014 16:32:31 +0000 (16:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=130389

Reviewed by Mark Lam.

Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
into !ENABLE(JIT) since they are mutually exclusive.

.:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:
* CMakeLists.txt:
* assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodePtr::createLLIntCodePtr):
(JSC::MacroAssemblerCodeRef::createLLIntCodeRef):
* assembler/MaxFrameExtentForSlowPathCall.h:
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromLLInt):
* bytecode/CodeBlock.cpp:
(JSC::dumpStructure):
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::unlinkCalls):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::frameRegisterCount):
* bytecode/CodeBlock.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFromLLInt):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):
* heap/Heap.cpp:
(JSC::Heap::gatherJSStackRoots):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::initialize):
(JSC::Interpreter::isOpcode):
* interpreter/Interpreter.h:
(JSC::Interpreter::getOpcodeID):
* interpreter/JSStack.cpp:
(JSC::JSStack::JSStack):
(JSC::JSStack::committedByteCount):
* interpreter/JSStack.h:
* interpreter/JSStackInlines.h:
(JSC::JSStack::ensureCapacityFor):
(JSC::JSStack::topOfFrameFor):
(JSC::JSStack::setStackLimit):
* jit/ExecutableAllocatorFixedVMPool.cpp:
(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
* jit/JIT.h:
(JSC::JIT::compileCTINativeCall):
* jit/JITExceptions.h:
* jit/JITThunks.cpp:
(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
* llint/LLIntCLoop.cpp:
* llint/LLIntCLoop.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
(JSC::LLInt::Data::performAssertions):
* llint/LLIntData.h:
(JSC::LLInt::Data::performAssertions): Deleted.
* llint/LLIntEntrypoint.cpp:
* llint/LLIntEntrypoint.h:
* llint/LLIntExceptions.cpp:
* llint/LLIntExceptions.h:
* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntOffsetsExtractor.cpp:
(JSC::LLIntOffsetsExtractor::dummy):
* llint/LLIntOpcode.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LLIntThunks.cpp:
* llint/LLIntThunks.h:
* llint/LowLevelInterpreter.cpp:
* llint/LowLevelInterpreter.h:
* runtime/CommonSlowPaths.cpp:
* runtime/CommonSlowPaths.h:
* runtime/ErrorHandlingScope.cpp:
(JSC::ErrorHandlingScope::ErrorHandlingScope):
(JSC::ErrorHandlingScope::~ErrorHandlingScope):
* runtime/Executable.cpp:
(JSC::setupLLInt):
* runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::sanitizeStackForVM):
* runtime/VM.h:
(JSC::VM::canUseJIT): Deleted.

Source/WTF:
* wtf/OSAllocatorPosix.cpp:
(WTF::OSAllocator::reserveAndCommit):
* wtf/Platform.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170147 268f45cc-cd09-0410-ab3c-d52691b4dbfc

56 files changed:
ChangeLog
Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h
Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h
Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
Source/JavaScriptCore/bytecode/CodeBlock.cpp
Source/JavaScriptCore/bytecode/CodeBlock.h
Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
Source/JavaScriptCore/bytecode/Opcode.h
Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
Source/JavaScriptCore/heap/Heap.cpp
Source/JavaScriptCore/interpreter/Interpreter.cpp
Source/JavaScriptCore/interpreter/Interpreter.h
Source/JavaScriptCore/interpreter/JSStack.cpp
Source/JavaScriptCore/interpreter/JSStack.h
Source/JavaScriptCore/interpreter/JSStackInlines.h
Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
Source/JavaScriptCore/jit/JIT.h
Source/JavaScriptCore/jit/JITExceptions.h
Source/JavaScriptCore/jit/JITThunks.cpp
Source/JavaScriptCore/llint/LLIntCLoop.cpp
Source/JavaScriptCore/llint/LLIntCLoop.h
Source/JavaScriptCore/llint/LLIntData.cpp
Source/JavaScriptCore/llint/LLIntData.h
Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
Source/JavaScriptCore/llint/LLIntEntrypoint.h
Source/JavaScriptCore/llint/LLIntExceptions.cpp
Source/JavaScriptCore/llint/LLIntExceptions.h
Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h
Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp
Source/JavaScriptCore/llint/LLIntOpcode.h
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
Source/JavaScriptCore/llint/LLIntSlowPaths.h
Source/JavaScriptCore/llint/LLIntThunks.cpp
Source/JavaScriptCore/llint/LLIntThunks.h
Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
Source/JavaScriptCore/llint/LowLevelInterpreter.h
Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
Source/JavaScriptCore/runtime/CommonSlowPaths.h
Source/JavaScriptCore/runtime/ErrorHandlingScope.cpp
Source/JavaScriptCore/runtime/Executable.cpp
Source/JavaScriptCore/runtime/InitializeThreading.cpp
Source/JavaScriptCore/runtime/JSCJSValue.h
Source/JavaScriptCore/runtime/JSCJSValueInlines.h
Source/JavaScriptCore/runtime/Options.cpp
Source/JavaScriptCore/runtime/VM.cpp
Source/JavaScriptCore/runtime/VM.h
Source/WTF/ChangeLog
Source/WTF/wtf/OSAllocatorPosix.cpp
Source/WTF/wtf/Platform.h
Source/cmake/OptionsEfl.cmake
Source/cmake/OptionsGTK.cmake
Source/cmake/WebKitFeatures.cmake
Source/cmakeconfig.h.cmake

index 8785cd8..9a6f83c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
+
+        Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
+        https://bugs.webkit.org/show_bug.cgi?id=130389
+
+        Reviewed by Mark Lam.
+
+        Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
+        into !ENABLE(JIT) since they are mutually exclusive.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsGTK.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
 2014-06-17  Zan Dobersek  <zdobersek@igalia.com>
 
         Remove the USE_GTK2=1 branch in OptionsGTK.cmake. This used to determine
index 1df935d..2c48066 100644 (file)
@@ -568,98 +568,97 @@ if (WTF_USE_UDIS86)
     )
 endif ()
 
-if (ENABLE_LLINT)
-    # We cannot check for RUBY_FOUND because it is set only when the full package is installed and
-    # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
-    # for finding the only Ruby interpreter.
-    if (NOT RUBY_EXECUTABLE)
-        message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.")
-    endif ()
+# We cannot check for RUBY_FOUND because it is set only when the full package is installed and
+# the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
+# for finding the only Ruby interpreter.
+if (NOT RUBY_EXECUTABLE)
+    message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.")
+endif ()
 
-    set(LLINT_ASM
-        llint/LowLevelInterpreter.asm
-        llint/LowLevelInterpreter32_64.asm
-        llint/LowLevelInterpreter64.asm
-    )
+set(LLINT_ASM
+    llint/LowLevelInterpreter.asm
+    llint/LowLevelInterpreter32_64.asm
+    llint/LowLevelInterpreter64.asm
+)
 
-    set(OFFLINE_ASM
-        offlineasm/arm.rb
-        offlineasm/ast.rb
-        offlineasm/backends.rb
-        offlineasm/cloop.rb
-        offlineasm/config.rb
-        offlineasm/instructions.rb
-        offlineasm/offsets.rb
-        offlineasm/opt.rb
-        offlineasm/parser.rb
-        offlineasm/registers.rb
-        offlineasm/risc.rb
-        offlineasm/self_hash.rb
-        offlineasm/settings.rb
-        offlineasm/transform.rb
-        offlineasm/x86.rb
-    )
+set(OFFLINE_ASM
+    offlineasm/arm.rb
+    offlineasm/ast.rb
+    offlineasm/backends.rb
+    offlineasm/cloop.rb
+    offlineasm/config.rb
+    offlineasm/instructions.rb
+    offlineasm/offsets.rb
+    offlineasm/opt.rb
+    offlineasm/parser.rb
+    offlineasm/registers.rb
+    offlineasm/risc.rb
+    offlineasm/self_hash.rb
+    offlineasm/settings.rb
+    offlineasm/transform.rb
+    offlineasm/x86.rb
+)
 
-    add_custom_command(
-        OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
-        MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
-        DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
-        COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
-        VERBATIM)
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
+    DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
+    COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
+    VERBATIM)
 
-    add_custom_command(
-        OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
-        MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
-        DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
-        COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
-        VERBATIM)
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
+    DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
+    COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
+    VERBATIM)
 
-    # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
-    # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
-    # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
-    # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
-    # changed the command will always be called because the mtime of the .h files will
-    # always be older than that of their dependencies.
-    # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
-    # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
-    # actually be run multiple times!
-    add_executable(LLIntOffsetsExtractor
-        ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
-        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
-    )
-    target_link_libraries(LLIntOffsetsExtractor WTF)
-
-    # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
-    # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
-    # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
-    # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
-    # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
-    # after every asm.rb run.
-    add_custom_command(
-        OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
-        MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
-        DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
-        COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
-        COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
-        VERBATIM)
+# We add the header files directly to the ADD_EXECUTABLE call instead of setting the
+# OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
+# generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
+# In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
+# changed the command will always be called because the mtime of the .h files will
+# always be older than that of their dependencies.
+# Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
+# dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
+# actually be run multiple times!
+add_executable(LLIntOffsetsExtractor
+    ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
+)
+target_link_libraries(LLIntOffsetsExtractor WTF)
+
+# The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
+# LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
+# that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
+# LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
+# running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
+# after every asm.rb run.
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
+    DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
+    COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
+    COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
+    VERBATIM)
+
+# The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
+# the .cpp files below is similar to the one in the previous comment. However, since these .cpp
+# files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
+# since it is used in the add_library() call at the end of this file.
+list(APPEND JavaScriptCore_HEADERS
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
+)
+list(APPEND JavaScriptCore_SOURCES
+    llint/LLIntCLoop.cpp
+    llint/LLIntData.cpp
+    llint/LLIntEntrypoint.cpp
+    llint/LLIntExceptions.cpp
+    llint/LLIntSlowPaths.cpp
+    llint/LLIntThunks.cpp
+    llint/LowLevelInterpreter.cpp
+)
 
-    # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
-    # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
-    # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
-    # since it is used in the add_library() call at the end of this file.
-    list(APPEND JavaScriptCore_HEADERS
-        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
-    )
-    list(APPEND JavaScriptCore_SOURCES
-        llint/LLIntCLoop.cpp
-        llint/LLIntData.cpp
-        llint/LLIntEntrypoint.cpp
-        llint/LLIntExceptions.cpp
-        llint/LLIntSlowPaths.cpp
-        llint/LLIntThunks.cpp
-        llint/LowLevelInterpreter.cpp
-    )
-endif ()
 
 if (ENABLE_FTL_JIT)
     if (NOT LLVM_STATIC_LIBRARIES)
@@ -694,11 +693,6 @@ if (ENABLE_FTL_JIT)
     )
 
     list(APPEND JavaScriptCore_SOURCES
-        llvm/InitializeLLVM.cpp
-        llvm/InitializeLLVMPOSIX.cpp
-        llvm/InitializeLLVMLinux.cpp
-        llvm/LLVMAPI.cpp
-
         dfg/DFGToFTLDeferredCompilationCallback.cpp
         dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp
 
@@ -711,9 +705,9 @@ if (ENABLE_FTL_JIT)
         ftl/FTLCapabilities.cpp
         ftl/FTLCommonValues.cpp
         ftl/FTLCompile.cpp
-        ftl/FTLDataSection.cpp
         ftl/FTLDWARFDebugLineInfo.cpp
         ftl/FTLDWARFRegister.cpp
+        ftl/FTLDataSection.cpp
         ftl/FTLExitArgument.cpp
         ftl/FTLExitArgumentForOperand.cpp
         ftl/FTLExitThunkGenerator.cpp
@@ -743,6 +737,11 @@ if (ENABLE_FTL_JIT)
         ftl/FTLUnwindInfo.cpp
         ftl/FTLValueFormat.cpp
         ftl/FTLValueRange.cpp
+
+        llvm/InitializeLLVM.cpp
+        llvm/InitializeLLVMLinux.cpp
+        llvm/InitializeLLVMPOSIX.cpp
+        llvm/LLVMAPI.cpp
     )
 endif ()
 
index 6f2117c..b12d6db 100644 (file)
@@ -1,3 +1,106 @@
+2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
+
+        Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
+        https://bugs.webkit.org/show_bug.cgi?id=130389
+
+        Reviewed by Mark Lam.
+
+        Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
+        into !ENABLE(JIT) since they are mutually exclusive.
+
+        * CMakeLists.txt:
+        * assembler/MacroAssemblerCodeRef.h:
+        (JSC::MacroAssemblerCodePtr::createLLIntCodePtr):
+        (JSC::MacroAssemblerCodeRef::createLLIntCodeRef):
+        * assembler/MaxFrameExtentForSlowPathCall.h:
+        * bytecode/CallLinkStatus.cpp:
+        (JSC::CallLinkStatus::computeFromLLInt):
+        * bytecode/CodeBlock.cpp:
+        (JSC::dumpStructure):
+        (JSC::CodeBlock::printGetByIdCacheStatus):
+        (JSC::CodeBlock::printCallOp):
+        (JSC::CodeBlock::CodeBlock):
+        (JSC::CodeBlock::~CodeBlock):
+        (JSC::CodeBlock::propagateTransitions):
+        (JSC::CodeBlock::finalizeUnconditionally):
+        (JSC::CodeBlock::unlinkCalls):
+        (JSC::CodeBlock::unlinkIncomingCalls):
+        (JSC::CodeBlock::linkIncomingCall):
+        (JSC::CodeBlock::frameRegisterCount):
+        * bytecode/CodeBlock.h:
+        * bytecode/GetByIdStatus.cpp:
+        (JSC::GetByIdStatus::computeFromLLInt):
+        * bytecode/Opcode.h:
+        (JSC::padOpcodeName):
+        * bytecode/PutByIdStatus.cpp:
+        (JSC::PutByIdStatus::computeFromLLInt):
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::emitCall):
+        (JSC::BytecodeGenerator::emitConstruct):
+        * heap/Heap.cpp:
+        (JSC::Heap::gatherJSStackRoots):
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::initialize):
+        (JSC::Interpreter::isOpcode):
+        * interpreter/Interpreter.h:
+        (JSC::Interpreter::getOpcodeID):
+        * interpreter/JSStack.cpp:
+        (JSC::JSStack::JSStack):
+        (JSC::JSStack::committedByteCount):
+        * interpreter/JSStack.h:
+        * interpreter/JSStackInlines.h:
+        (JSC::JSStack::ensureCapacityFor):
+        (JSC::JSStack::topOfFrameFor):
+        (JSC::JSStack::setStackLimit):
+        * jit/ExecutableAllocatorFixedVMPool.cpp:
+        (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
+        * jit/JIT.h:
+        (JSC::JIT::compileCTINativeCall):
+        * jit/JITExceptions.h:
+        * jit/JITThunks.cpp:
+        (JSC::JITThunks::ctiNativeCall):
+        (JSC::JITThunks::ctiNativeConstruct):
+        * llint/LLIntCLoop.cpp:
+        * llint/LLIntCLoop.h:
+        * llint/LLIntData.cpp:
+        (JSC::LLInt::initialize):
+        (JSC::LLInt::Data::performAssertions):
+        * llint/LLIntData.h:
+        (JSC::LLInt::Data::performAssertions): Deleted.
+        * llint/LLIntEntrypoint.cpp:
+        * llint/LLIntEntrypoint.h:
+        * llint/LLIntExceptions.cpp:
+        * llint/LLIntExceptions.h:
+        * llint/LLIntOfflineAsmConfig.h:
+        * llint/LLIntOffsetsExtractor.cpp:
+        (JSC::LLIntOffsetsExtractor::dummy):
+        * llint/LLIntOpcode.h:
+        * llint/LLIntSlowPaths.cpp:
+        (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+        * llint/LLIntSlowPaths.h:
+        * llint/LLIntThunks.cpp:
+        * llint/LLIntThunks.h:
+        * llint/LowLevelInterpreter.cpp:
+        * llint/LowLevelInterpreter.h:
+        * runtime/CommonSlowPaths.cpp:
+        * runtime/CommonSlowPaths.h:
+        * runtime/ErrorHandlingScope.cpp:
+        (JSC::ErrorHandlingScope::ErrorHandlingScope):
+        (JSC::ErrorHandlingScope::~ErrorHandlingScope):
+        * runtime/Executable.cpp:
+        (JSC::setupLLInt):
+        * runtime/InitializeThreading.cpp:
+        (JSC::initializeThreading):
+        * runtime/JSCJSValue.h:
+        * runtime/JSCJSValueInlines.h:
+        * runtime/Options.cpp:
+        (JSC::recomputeDependentOptions):
+        * runtime/VM.cpp:
+        (JSC::VM::VM):
+        (JSC::sanitizeStackForVM):
+        * runtime/VM.h:
+        (JSC::VM::canUseJIT): Deleted.
+
 2014-06-18  Alex Christensen  <achristensen@webkit.org>
 
         Add FTL to Windows build.
index 82c6e3f..5795126 100644 (file)
@@ -36,7 +36,7 @@
 
 // ASSERT_VALID_CODE_POINTER checks that ptr is a non-null pointer, and that it is a valid
 // instruction address on the platform (for example, check any alignment requirements).
-#if CPU(ARM_THUMB2) && !ENABLE(LLINT_C_LOOP)
+#if CPU(ARM_THUMB2) && ENABLE(JIT)
 // ARM instructions must be 16-bit aligned. Thumb2 code pointers to be loaded into
 // into the processor are decorated with the bottom bit set, while traditional ARM has
 // the lower bit clear. Since we don't know what kind of pointer, we check for both
@@ -293,12 +293,10 @@ public:
         return result;
     }
 
-#if ENABLE(LLINT)
     static MacroAssemblerCodePtr createLLIntCodePtr(OpcodeID codeId)
     {
         return createFromExecutableAddress(LLInt::getCodePtr(codeId));
     }
-#endif
 
     explicit MacroAssemblerCodePtr(ReturnAddressPtr ra)
         : m_value(ra.value())
@@ -410,13 +408,11 @@ public:
         return MacroAssemblerCodeRef(codePtr);
     }
     
-#if ENABLE(LLINT)
     // Helper for creating self-managed code refs from LLInt.
     static MacroAssemblerCodeRef createLLIntCodeRef(OpcodeID codeId)
     {
         return createSelfManagedCodeRef(MacroAssemblerCodePtr::createFromExecutableAddress(LLInt::getCodePtr(codeId)));
     }
-#endif
 
     ExecutableMemoryHandle* executableMemory() const
     {
index 90751c6..39ed6fa 100644 (file)
@@ -37,7 +37,7 @@ namespace JSC {
 // that can be used for outgoing args when calling a slow path C function
 // from JS code.
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 static const size_t maxFrameExtentForSlowPathCall = 0;
 
 #elif CPU(X86_64) && OS(WINDOWS)
@@ -75,7 +75,7 @@ static const size_t maxFrameExtentForSlowPathCall = 40;
 
 COMPILE_ASSERT(!(maxFrameExtentForSlowPathCall % sizeof(Register)), extent_must_be_in_multiples_of_registers);
 
-#if !ENABLE(LLINT_C_LOOP)
+#if ENABLE(JIT)
 // Make sure that cfr - maxFrameExtentForSlowPathCall bytes will make the stack pointer aligned
 COMPILE_ASSERT((maxFrameExtentForSlowPathCall % 16) == 16 - sizeof(CallerFrameAndPC), extent_must_align_stack_from_callframe_pointer);
 #endif
index 0bab076..29a9237 100644 (file)
@@ -89,7 +89,6 @@ CallLinkStatus CallLinkStatus::computeFromLLInt(const ConcurrentJITLocker& locke
 {
     UNUSED_PARAM(profiledBlock);
     UNUSED_PARAM(bytecodeIndex);
-#if ENABLE(LLINT)
 #if ENABLE(DFG_JIT)
     if (profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadFunction))) {
         // We could force this to be a closure call, but instead we'll just assume that it
@@ -110,9 +109,6 @@ CallLinkStatus CallLinkStatus::computeFromLLInt(const ConcurrentJITLocker& locke
     LLIntCallLinkInfo* callLinkInfo = instruction[5].u.callLinkInfo;
     
     return CallLinkStatus(callLinkInfo->lastSeenCallee.get());
-#else
-    return CallLinkStatus();
-#endif
 }
 
 CallLinkStatus CallLinkStatus::computeFor(
index 77563a9..e50601d 100644 (file)
@@ -283,7 +283,6 @@ void CodeBlock::printGetByIdOp(PrintStream& out, ExecState* exec, int location,
     it += 4; // Increment up to the value profiler.
 }
 
-#if ENABLE(JIT) || ENABLE(LLINT) // unused in some configurations
 static void dumpStructure(PrintStream& out, const char* name, ExecState* exec, Structure* structure, const Identifier& ident)
 {
     if (!structure)
@@ -295,7 +294,6 @@ static void dumpStructure(PrintStream& out, const char* name, ExecState* exec, S
     if (offset != invalidOffset)
         out.printf(" (offset = %d)", offset);
 }
-#endif
 
 #if ENABLE(JIT) // unused when not ENABLE(JIT), leading to silly warnings
 static void dumpChain(PrintStream& out, ExecState* exec, StructureChain* chain, const Identifier& ident)
@@ -323,7 +321,6 @@ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int l
     
     UNUSED_PARAM(ident); // tell the compiler to shut up in certain platform configurations.
     
-#if ENABLE(LLINT)
     if (exec->interpreter()->getOpcodeID(instruction[0].u.opcode) == op_get_array_length)
         out.printf(" llint(array_length)");
     else if (Structure* structure = instruction[4].u.structure.get()) {
@@ -331,7 +328,6 @@ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int l
         dumpStructure(out, "struct", exec, structure, ident);
         out.printf(")");
     }
-#endif
 
 #if ENABLE(JIT)
     if (StructureStubInfo* stubPtr = map.get(CodeOrigin(location))) {
@@ -416,7 +412,6 @@ void CodeBlock::printCallOp(PrintStream& out, ExecState* exec, int location, con
     printLocationAndOp(out, exec, location, it, op);
     out.printf("%s, %s, %d, %d", registerName(dst).data(), registerName(func).data(), argCount, registerOffset);
     if (cacheDumpMode == DumpCaches) {
-#if ENABLE(LLINT)
         LLIntCallLinkInfo* callLinkInfo = it[1].u.callLinkInfo;
         if (callLinkInfo->lastSeenCallee) {
             out.printf(
@@ -424,7 +419,6 @@ void CodeBlock::printCallOp(PrintStream& out, ExecState* exec, int location, con
                 callLinkInfo->lastSeenCallee.get(),
                 callLinkInfo->lastSeenCallee->executable());
         }
-#endif
 #if ENABLE(JIT)
         if (CallLinkInfo* info = map.get(CodeOrigin(location))) {
             JSFunction* target = info->lastSeenCallee.get();
@@ -1583,7 +1577,7 @@ CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, UnlinkedCodeBlock* unlin
                 m_rareData->m_exceptionHandlers[i].end = handler.end;
                 m_rareData->m_exceptionHandlers[i].target = handler.target;
                 m_rareData->m_exceptionHandlers[i].scopeDepth = nonLocalScopeDepth + handler.scopeDepth;
-#if ENABLE(JIT) && ENABLE(LLINT)
+#if ENABLE(JIT)
                 m_rareData->m_exceptionHandlers[i].nativeCode = CodeLocationLabel(MacroAssemblerCodePtr::createFromExecutableAddress(LLInt::getCodePtr(op_catch)));
 #endif
             }
@@ -1614,10 +1608,8 @@ CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, UnlinkedCodeBlock* unlin
     }
 
     // Allocate metadata buffers for the bytecode
-#if ENABLE(LLINT)
     if (size_t size = unlinkedCodeBlock->numberOfLLintCallLinkInfos())
         m_llintCallLinkInfos.resizeToFit(size);
-#endif
     if (size_t size = unlinkedCodeBlock->numberOfArrayProfiles())
         m_arrayProfiles.grow(size);
     if (size_t size = unlinkedCodeBlock->numberOfArrayAllocationProfiles())
@@ -1701,15 +1693,11 @@ CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, UnlinkedCodeBlock* unlin
             int arrayProfileIndex = pc[opLength - 2].u.operand;
             m_arrayProfiles[arrayProfileIndex] = ArrayProfile(i);
             instructions[i + opLength - 2] = &m_arrayProfiles[arrayProfileIndex];
-#if ENABLE(LLINT)
             instructions[i + 5] = &m_llintCallLinkInfos[pc[5].u.operand];
-#endif
             break;
         }
         case op_construct: {
-#if ENABLE(LLINT)
             instructions[i + 5] = &m_llintCallLinkInfos[pc[5].u.operand];
-#endif
             ValueProfile* profile = &m_valueProfiles[pc[opLength - 1].u.operand];
             ASSERT(profile->m_bytecodeOffset == -1);
             profile->m_bytecodeOffset = i;
@@ -1837,11 +1825,8 @@ CodeBlock::~CodeBlock()
 #if ENABLE(VERBOSE_VALUE_PROFILE)
     dumpValueProfiles();
 #endif
-
-#if ENABLE(LLINT)    
     while (m_incomingLLIntCalls.begin() != m_incomingLLIntCalls.end())
         m_incomingLLIntCalls.begin()->remove();
-#endif // ENABLE(LLINT)
 #if ENABLE(JIT)
     // We may be destroyed before any CodeBlocks that refer to us are destroyed.
     // Consider that two CodeBlocks become unreachable at the same time. There
@@ -2024,7 +2009,6 @@ void CodeBlock::propagateTransitions(SlotVisitor& visitor)
 
     bool allAreMarkedSoFar = true;
         
-#if ENABLE(LLINT)
     Interpreter* interpreter = m_vm->interpreter;
     if (jitType() == JITCode::InterpreterThunk) {
         const Vector<unsigned>& propertyAccessInstructions = m_unlinkedCode->propertyAccessInstructions();
@@ -2046,7 +2030,6 @@ void CodeBlock::propagateTransitions(SlotVisitor& visitor)
             }
         }
     }
-#endif // ENABLE(LLINT)
 
 #if ENABLE(JIT)
     if (JITCode::isJIT(jitType())) {
@@ -2243,7 +2226,6 @@ void CodeBlock::finalizeUnconditionally()
             }
         }
 
-#if ENABLE(LLINT)
         for (unsigned i = 0; i < m_llintCallLinkInfos.size(); ++i) {
             if (m_llintCallLinkInfos[i].isLinked() && !Heap::isMarked(m_llintCallLinkInfos[i].callee.get())) {
                 if (Options::verboseOSR())
@@ -2253,7 +2235,6 @@ void CodeBlock::finalizeUnconditionally()
             if (!!m_llintCallLinkInfos[i].lastSeenCallee && !Heap::isMarked(m_llintCallLinkInfos[i].lastSeenCallee.get()))
                 m_llintCallLinkInfos[i].lastSeenCallee.clear();
         }
-#endif // ENABLE(LLINT)
     }
 
 #if ENABLE(DFG_JIT)
@@ -2649,12 +2630,10 @@ void CodeBlock::unlinkCalls()
 {
     if (!!m_alternative)
         m_alternative->unlinkCalls();
-#if ENABLE(LLINT)
     for (size_t i = 0; i < m_llintCallLinkInfos.size(); ++i) {
         if (m_llintCallLinkInfos[i].isLinked())
             m_llintCallLinkInfos[i].unlink();
     }
-#endif
     if (m_callLinkInfos.isEmpty())
         return;
     if (!m_vm->canUseJIT())
@@ -2677,10 +2656,8 @@ void CodeBlock::linkIncomingCall(ExecState* callerFrame, CallLinkInfo* incoming)
 
 void CodeBlock::unlinkIncomingCalls()
 {
-#if ENABLE(LLINT)
     while (m_incomingLLIntCalls.begin() != m_incomingLLIntCalls.end())
         m_incomingLLIntCalls.begin()->unlink();
-#endif // ENABLE(LLINT)
 #if ENABLE(JIT)
     if (m_incomingCalls.isEmpty())
         return;
@@ -2690,13 +2667,11 @@ void CodeBlock::unlinkIncomingCalls()
 #endif // ENABLE(JIT)
 }
 
-#if ENABLE(LLINT)
 void CodeBlock::linkIncomingCall(ExecState* callerFrame, LLIntCallLinkInfo* incoming)
 {
     noticeIncomingCall(callerFrame);
     m_incomingLLIntCalls.push(incoming);
 }
-#endif // ENABLE(LLINT)
 
 void CodeBlock::clearEvalCache()
 {
@@ -3371,10 +3346,8 @@ void CodeBlock::dumpValueProfiles()
 unsigned CodeBlock::frameRegisterCount()
 {
     switch (jitType()) {
-#if ENABLE(LLINT)
     case JITCode::InterpreterThunk:
         return LLInt::frameRegisterCountFor(this);
-#endif // ENABLE(LLINT)
 
 #if ENABLE(JIT)
     case JITCode::BaselineJIT:
index 6223271..e63e5a4 100644 (file)
@@ -232,9 +232,7 @@ public:
     }
 #endif // ENABLE(JIT)
 
-#if ENABLE(LLINT)
     void linkIncomingCall(ExecState* callerFrame, LLIntCallLinkInfo*);
-#endif // ENABLE(LLINT)
 
     void setJITCodeMap(PassOwnPtr<CompactJITCodeMap> jitCodeMap)
     {
@@ -1040,10 +1038,8 @@ private:
     unsigned m_firstLineColumnOffset;
     unsigned m_codeType;
 
-#if ENABLE(LLINT)
     Vector<LLIntCallLinkInfo> m_llintCallLinkInfos;
     SentinelLinkedList<LLIntCallLinkInfo, BasicRawSentinelNode<LLIntCallLinkInfo>> m_incomingLLIntCalls;
-#endif
     RefPtr<JITCode> m_jitCode;
 #if ENABLE(JIT)
     Bag<StructureStubInfo> m_stubInfos;
index 04e2360..235cdbd 100644 (file)
@@ -61,7 +61,6 @@ GetByIdStatus GetByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
     UNUSED_PARAM(profiledBlock);
     UNUSED_PARAM(bytecodeIndex);
     UNUSED_PARAM(uid);
-#if ENABLE(LLINT)
     Instruction* instruction = profiledBlock->instructions().begin() + bytecodeIndex;
     
     if (instruction[0].u.opcode == LLInt::getOpcode(op_get_array_length))
@@ -84,9 +83,6 @@ GetByIdStatus GetByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
         return GetByIdStatus(NoInformation, false);
     
     return GetByIdStatus(Simple, false, GetByIdVariant(StructureSet(structure), offset, specificValue));
-#else
-    return GetByIdStatus(NoInformation, false);
-#endif
 }
 
 bool GetByIdStatus::computeForChain(CodeBlock* profiledBlock, StringImpl* uid, PassRefPtr<IntendedStructureChain> passedChain)
index 2fecd23..1ed48c2 100644 (file)
@@ -59,7 +59,7 @@ namespace JSC {
 #undef OPCODE_ID_ENUM
 
 const int maxOpcodeLength = 9;
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS + NUMBER_OF_CLOOP_BYTECODE_HELPER_IDS + NUMBER_OF_BYTECODE_HELPER_IDS;
 #else
 const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS + NUMBER_OF_BYTECODE_HELPER_IDS;
index 055b76b..5743750 100644 (file)
@@ -63,7 +63,6 @@ PutByIdStatus PutByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
     UNUSED_PARAM(profiledBlock);
     UNUSED_PARAM(bytecodeIndex);
     UNUSED_PARAM(uid);
-#if ENABLE(LLINT)
     Instruction* instruction = profiledBlock->instructions().begin() + bytecodeIndex;
 
     Structure* structure = instruction[4].u.structure.get();
@@ -99,9 +98,6 @@ PutByIdStatus PutByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
         structure, newStructure,
         chain ? adoptRef(new IntendedStructureChain(profiledBlock, structure, chain)) : 0,
         offset);
-#else
-    return PutByIdStatus(NoInformation);
-#endif
 }
 
 PutByIdStatus PutByIdStatus::computeFor(CodeBlock* profiledBlock, StubInfoMap& map, unsigned bytecodeIndex, StringImpl* uid)
index e549b83..dcda652 100644 (file)
@@ -1766,11 +1766,7 @@ RegisterID* BytecodeGenerator::emitCall(OpcodeID opcodeID, RegisterID* dst, Regi
     instructions().append(func->index());
     instructions().append(callArguments.argumentCountIncludingThis());
     instructions().append(callArguments.stackOffset());
-#if ENABLE(LLINT)
     instructions().append(m_codeBlock->addLLIntCallLinkInfo());
-#else
-    instructions().append(0);
-#endif
     instructions().append(0);
     instructions().append(arrayProfile);
     instructions().append(profile);
@@ -1905,11 +1901,7 @@ RegisterID* BytecodeGenerator::emitConstruct(RegisterID* dst, RegisterID* func,
     instructions().append(func->index());
     instructions().append(callArguments.argumentCountIncludingThis());
     instructions().append(callArguments.stackOffset());
-#if ENABLE(LLINT)
     instructions().append(m_codeBlock->addLLIntCallLinkInfo());
-#else
-    instructions().append(0);
-#endif
     instructions().append(0);
     instructions().append(0);
     instructions().append(profile);
index 18250b9..08a09d1 100644 (file)
@@ -567,7 +567,7 @@ void Heap::gatherStackRoots(ConservativeRoots& roots, void** dummy)
 
 void Heap::gatherJSStackRoots(ConservativeRoots& roots)
 {
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     GCPHASE(GatherJSStackRoots);
     stack().gatherConservativeRoots(roots, m_jitStubRoutines, m_codeBlocks);
 #else
index e83c681..296468b 100644 (file)
@@ -84,7 +84,7 @@
 #include "JIT.h"
 #endif
 
-#define WTF_USE_GCC_COMPUTED_GOTO_WORKAROUND (ENABLE(LLINT) && !defined(__llvm__))
+#define WTF_USE_GCC_COMPUTED_GOTO_WORKAROUND (!defined(__llvm__))
 
 using namespace std;
 
@@ -299,7 +299,7 @@ void Interpreter::initialize(bool canUseJIT)
 {
     UNUSED_PARAM(canUseJIT);
 
-#if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)
+#if ENABLE(COMPUTED_GOTO_OPCODES)
     m_opcodeTable = LLInt::opcodeMap();
     for (int i = 0; i < numOpcodeIDs; ++i)
         m_opcodeIDTable.add(m_opcodeTable[i], static_cast<OpcodeID>(i));
@@ -428,13 +428,9 @@ void Interpreter::dumpRegisters(CallFrame* callFrame)
 bool Interpreter::isOpcode(Opcode opcode)
 {
 #if ENABLE(COMPUTED_GOTO_OPCODES)
-#if !ENABLE(LLINT)
-    return static_cast<OpcodeID>(bitwise_cast<uintptr_t>(opcode)) <= op_end;
-#else
     return opcode != HashTraits<Opcode>::emptyValue()
         && !HashTraits<Opcode>::isDeletedValue(opcode)
         && m_opcodeIDTable.contains(opcode);
-#endif
 #else
     return opcode >= 0 && opcode <= op_end;
 #endif
index a624566..c77019e 100644 (file)
@@ -219,7 +219,7 @@ namespace JSC {
         OpcodeID getOpcodeID(Opcode opcode)
         {
             ASSERT(m_initialized);
-#if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)
+#if ENABLE(COMPUTED_GOTO_OPCODES)
             ASSERT(isOpcode(opcode));
             return m_opcodeIDTable.get(opcode);
 #else
@@ -274,7 +274,7 @@ namespace JSC {
         JSStack m_stack;
         int m_errorHandlingModeReentry;
         
-#if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)
+#if ENABLE(COMPUTED_GOTO_OPCODES)
         Opcode* m_opcodeTable; // Maps OpcodeID => Opcode for compiling
         HashMap<Opcode, OpcodeID> m_opcodeIDTable; // Maps Opcode => OpcodeID for decompiling
 #endif
index bf7050f..c6a703c 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace JSC {
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 static size_t committedBytesCount = 0;
 
 static Mutex& stackStatisticsMutex()
@@ -44,17 +44,17 @@ static Mutex& stackStatisticsMutex()
     DEPRECATED_DEFINE_STATIC_LOCAL(Mutex, staticMutex, ());
     return staticMutex;
 }    
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
 JSStack::JSStack(VM& vm)
     : m_vm(vm)
     , m_topCallFrame(vm.topCallFrame)
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     , m_end(0)
     , m_reservedZoneSizeInRegisters(0)
 #endif
 {
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     size_t capacity = Options::maxPerThreadStackUsage();
     ASSERT(capacity && isPageAligned(capacity));
 
@@ -63,12 +63,12 @@ JSStack::JSStack(VM& vm)
     m_commitTop = highAddress();
     
     m_lastStackTop = baseOfStack();
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
     m_topCallFrame = 0;
 }
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 JSStack::~JSStack()
 {
     ptrdiff_t sizeToDecommit = reinterpret_cast<char*>(highAddress()) - reinterpret_cast<char*>(m_commitTop);
@@ -158,9 +158,9 @@ void JSStack::setReservedZoneSize(size_t reservedZoneSize)
     if (m_commitTop >= (m_end + 1) - m_reservedZoneSizeInRegisters)
         growSlowCase(m_end + 1);
 }
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
-#if !ENABLE(LLINT_C_LOOP)
+#if ENABLE(JIT)
 Register* JSStack::lowAddress() const
 {
     ASSERT(wtfThreadData().stack().isGrowingDownward());
@@ -172,11 +172,11 @@ Register* JSStack::highAddress() const
     ASSERT(wtfThreadData().stack().isGrowingDownward());
     return reinterpret_cast<Register*>(wtfThreadData().stack().origin());
 }
-#endif // !ENABLE(LLINT_C_LOOP)
+#endif // ENABLE(JIT)
 
 size_t JSStack::committedByteCount()
 {
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     MutexLocker locker(stackStatisticsMutex());
     return committedBytesCount;
 #else
index 9e103c4..174d75f 100644 (file)
@@ -79,7 +79,7 @@ namespace JSC {
         bool containsAddress(Register* address) { return (lowAddress() <= address && address < highAddress()); }
         static size_t committedByteCount();
 
-#if !ENABLE(LLINT_C_LOOP)
+#if ENABLE(JIT)
         void gatherConservativeRoots(ConservativeRoots&) { }
         void gatherConservativeRoots(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet&) { }
         void sanitizeStack() { }
@@ -103,11 +103,11 @@ namespace JSC {
         void setReservedZoneSize(size_t);
 
         inline Register* topOfStack();
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // ENABLE(JIT)
 
     private:
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
         Register* lowAddress() const
         {
             return m_end + 1;
@@ -120,9 +120,9 @@ namespace JSC {
 #else
         Register* lowAddress() const;
         Register* highAddress() const;
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
         inline Register* topOfFrameFor(CallFrame*);
 
         Register* reservationTop() const
@@ -138,17 +138,17 @@ namespace JSC {
         void addToCommittedByteCount(long);
 
         void setStackLimit(Register* newTopOfStack);
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
         VM& m_vm;
         CallFrame*& m_topCallFrame;
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
         Register* m_end;
         Register* m_commitTop;
         PageReservation m_reservation;
         Register* m_lastStackTop;
         ptrdiff_t m_reservedZoneSizeInRegisters;
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
         friend class LLIntOffsetsExtractor;
     };
index b074b37..69508ab 100644 (file)
@@ -35,7 +35,7 @@ namespace JSC {
 
 inline bool JSStack::ensureCapacityFor(Register* newTopOfStack)
 {
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     return grow(newTopOfStack);
 #else
     ASSERT(wtfThreadData().stack().isGrowingDownward());
@@ -43,14 +43,12 @@ inline bool JSStack::ensureCapacityFor(Register* newTopOfStack)
 #endif
 }
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 
 inline Register* JSStack::topOfFrameFor(CallFrame* frame)
 {
-#if ENABLE(LLINT_C_LOOP)
     if (UNLIKELY(!frame))
         return baseOfStack();
-#endif
     return frame->topOfFrame() - 1;
 }
 
@@ -86,12 +84,10 @@ inline void JSStack::setStackLimit(Register* newTopOfStack)
 {
     Register* newEnd = newTopOfStack - 1;
     m_end = newEnd;
-#if ENABLE(LLINT_C_LOOP)
     m_vm.setJSStackLimit(newTopOfStack);
-#endif
 }
 
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
 } // namespace JSC
 
index 9028ade..9afb055 100644 (file)
@@ -63,9 +63,6 @@ public:
         : MetaAllocator(jitAllocationGranule) // round up all allocations to 32 bytes
     {
         m_reservation = PageReservation::reserveWithGuardPages(fixedExecutableMemoryPoolSize, OSAllocator::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
-#if !ENABLE(LLINT)
-        RELEASE_ASSERT(m_reservation);
-#endif
         if (m_reservation) {
             ASSERT(m_reservation.size() == fixedExecutableMemoryPoolSize);
             addFreshFreeSpace(m_reservation.base(), m_reservation.size());
index b851e81..f42f515 100644 (file)
@@ -230,11 +230,7 @@ namespace JSC {
         static CodeRef compileCTINativeCall(VM* vm, NativeFunction func)
         {
             if (!vm->canUseJIT()) {
-#if ENABLE(LLINT)
                 return CodeRef::createLLIntCodeRef(llint_native_call_trampoline);
-#else
-                return CodeRef();
-#endif
             }
             JIT jit(vm, 0);
             return jit.privateCompileCTINativeCall(vm, func);
index 376e269..e02b515 100644 (file)
@@ -28,8 +28,6 @@
 
 #include "JSCJSValue.h"
 
-#if ENABLE(JIT) || ENABLE(LLINT)
-
 namespace JSC {
 
 class ExecState;
@@ -39,7 +37,5 @@ void genericUnwind(VM*, ExecState*, JSValue exceptionValue);
 
 } // namespace JSC
 
-#endif // ENABLE(JIT) || ENABLE(LLINT)
-
 #endif // JITExceptions_h
 
index c000a43..a0694f5 100644 (file)
@@ -46,19 +46,15 @@ JITThunks::~JITThunks()
 
 MacroAssemblerCodePtr JITThunks::ctiNativeCall(VM* vm)
 {
-#if ENABLE(LLINT)
     if (!vm->canUseJIT())
         return MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_call_trampoline);
-#endif
     return ctiStub(vm, nativeCallGenerator).code();
 }
 
 MacroAssemblerCodePtr JITThunks::ctiNativeConstruct(VM* vm)
 {
-#if ENABLE(LLINT)
     if (!vm->canUseJIT())
         return MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_construct_trampoline);
-#endif
     return ctiStub(vm, nativeConstructGenerator).code();
 }
 
index b6b976d..e3c6c6c 100644 (file)
@@ -26,7 +26,7 @@
 #include "config.h"
 #include "LLIntCLoop.h"
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 
 #include "LLIntData.h"
 
@@ -41,4 +41,4 @@ void CLoop::initialize()
 } // namespace LLInt
 } // namespace JSC
 
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
index 33fd940..8782b36 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef LLIntCLoop_h
 #define LLIntCLoop_h
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 
 #include "CallFrame.h"
 #include "JSCJSValue.h"
@@ -46,6 +46,6 @@ public:
 
 using JSC::LLInt::CLoop;
 
-#endif // ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
 #endif // LLIntCLoop_h
index 4dbe3e5..7ed20da 100644 (file)
@@ -25,9 +25,6 @@
 
 #include "config.h"
 #include "LLIntData.h"
-
-#if ENABLE(LLINT)
-
 #include "BytecodeConventions.h"
 #include "CodeType.h"
 #include "Instruction.h"
@@ -42,7 +39,7 @@ namespace JSC { namespace LLInt {
 Instruction* Data::s_exceptionInstructions = 0;
 Opcode Data::s_opcodeMap[numOpcodeIDs] = { };
 
-#if !ENABLE(LLINT_C_LOOP)
+#if ENABLE(JIT)
 extern "C" void llint_entry(void*);
 #endif
 
@@ -50,16 +47,16 @@ void initialize()
 {
     Data::s_exceptionInstructions = new Instruction[maxOpcodeLength + 1];
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     CLoop::initialize();
 
-#else // !ENABLE(LLINT_C_LOOP)
+#else // ENABLE(JIT)
     llint_entry(&Data::s_opcodeMap);
 
     for (int i = 0; i < maxOpcodeLength + 1; ++i)
         Data::s_exceptionInstructions[i].u.pointer =
             LLInt::getCodePtr(llint_throw_from_slow_path_trampoline);
-#endif // !ENABLE(LLINT_C_LOOP)
+#endif // ENABLE(JIT)
 }
 
 #if COMPILER(CLANG)
@@ -126,7 +123,7 @@ void Data::performAssertions(VM& vm)
     ASSERT(ValueUndefined == (TagBitTypeOther | TagBitUndefined));
     ASSERT(ValueNull == TagBitTypeOther);
 #endif
-#if CPU(X86_64) || CPU(ARM64) || ENABLE(LLINT_C_LOOP)
+#if CPU(X86_64) || CPU(ARM64) || !ENABLE(JIT)
     ASSERT(!maxFrameExtentForSlowPathCall);
 #elif CPU(ARM) || CPU(SH4)
     ASSERT(maxFrameExtentForSlowPathCall == 24);
@@ -171,5 +168,3 @@ void Data::performAssertions(VM& vm)
 #endif
 
 } } // namespace JSC::LLInt
-
-#endif // ENABLE(LLINT)
index ca9c873..7e7794b 100644 (file)
@@ -34,7 +34,7 @@ namespace JSC {
 class VM;
 struct Instruction;
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 typedef OpcodeID LLIntCode;
 #else
 typedef void (*LLIntCode)();
@@ -42,8 +42,6 @@ typedef void (*LLIntCode)();
 
 namespace LLInt {
 
-#if ENABLE(LLINT)
-
 class Data {
 public:
     static void performAssertions(VM&);
@@ -93,24 +91,6 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(OpcodeID codeId)
 }
 #endif
 
-#else // !ENABLE(LLINT)
-
-#if COMPILER(CLANG)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wmissing-noreturn"
-#endif
-
-class Data {
-public:
-    static void performAssertions(VM&) { }
-};
-
-#if COMPILER(CLANG)
-#pragma clang diagnostic pop
-#endif
-
-#endif // !ENABLE(LLINT)
-
 ALWAYS_INLINE void* getCodePtr(JSC::EncodedJSValue glueHelper())
 {
     return bitwise_cast<void*>(glueHelper);
index 769163a..bcd14d5 100644 (file)
@@ -25,9 +25,6 @@
 
 #include "config.h"
 #include "LLIntEntrypoint.h"
-
-#if ENABLE(LLINT)
-
 #include "CodeBlock.h"
 #include "HeapInlines.h"
 #include "JITCode.h"
@@ -124,5 +121,3 @@ unsigned frameRegisterCountFor(CodeBlock* codeBlock)
 }
 
 } } // namespace JSC::LLInt
-
-#endif // ENABLE(LLINT)
index adec769..5b8fd51 100644 (file)
@@ -26,8 +26,6 @@
 #ifndef LLIntEntrypoint_h
 #define LLIntEntrypoint_h
 
-#if ENABLE(LLINT)
-
 #include "CodeSpecializationKind.h"
 
 namespace JSC {
@@ -43,6 +41,4 @@ unsigned frameRegisterCountFor(CodeBlock*);
 
 } } // namespace JSC::LLInt
 
-#endif // ENABLE(LLINT)
-
 #endif // LLIntEntrypoint_h
index a93becc..039936e 100644 (file)
@@ -25,9 +25,6 @@
 
 #include "config.h"
 #include "LLIntExceptions.h"
-
-#if ENABLE(LLINT)
-
 #include "CallFrame.h"
 #include "CodeBlock.h"
 #include "Instruction.h"
@@ -64,5 +61,3 @@ void* callToThrow(ExecState* exec)
 }
 
 } } // namespace JSC::LLInt
-
-#endif // ENABLE(LLINT)
index 98839dc..bdeb5e4 100644 (file)
@@ -27,9 +27,6 @@
 #define LLIntExceptions_h
 
 #include <wtf/StdLibExtras.h>
-
-#if ENABLE(LLINT)
-
 #include "MacroAssemblerCodeRef.h"
 
 namespace JSC {
@@ -53,6 +50,4 @@ void* callToThrow(ExecState*);
 
 } } // namespace JSC::LLInt
 
-#endif // ENABLE(LLINT)
-
 #endif // LLIntExceptions_h
index ac00b3f..ba8bd13 100644 (file)
@@ -30,7 +30,7 @@
 #include <wtf/Assertions.h>
 #include <wtf/InlineASM.h>
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 #define OFFLINE_ASM_C_LOOP 1
 #define OFFLINE_ASM_X86 0
 #define OFFLINE_ASM_X86_WIN 0
@@ -43,7 +43,7 @@
 #define OFFLINE_ASM_MIPS 0
 #define OFFLINE_ASM_SH4 0
 
-#else // !ENABLE(LLINT_C_LOOP)
+#else // ENABLE(JIT)
 
 #define OFFLINE_ASM_C_LOOP 0
 
 #endif
 #endif
 
-#endif // !ENABLE(LLINT_C_LOOP)
+#endif // ENABLE(JIT)
 
 #if USE(JSVALUE64)
 #define OFFLINE_ASM_JSVALUE64 1
index 604cc26..84256ae 100644 (file)
@@ -53,6 +53,7 @@
 #include "ValueProfile.h"
 #include <wtf/text/StringImpl.h>
 
+
 namespace JSC {
 
 #define OFFLINE_ASM_OFFSETOF(clazz, field) (static_cast<unsigned>(OBJECT_OFFSETOF(clazz, field)))
@@ -64,7 +65,6 @@ public:
 
 const unsigned* LLIntOffsetsExtractor::dummy()
 {
-#if ENABLE(LLINT)
 // This is a file generated by offlineasm/generate_offsets_extractor.rb, and contains code
 // to create a table of offsets, sizes, and a header identifying what combination of
 // Platform.h macros we have set. We include it inside of a method on LLIntOffsetsExtractor
@@ -73,9 +73,6 @@ const unsigned* LLIntOffsetsExtractor::dummy()
 // compiler to kindly step aside and yield to our best intentions.
 #include "LLIntDesiredOffsets.h"
     return extractorTable;
-#else
-    return 0;
-#endif
 }
 
 } // namespace JSC
index 8117a98..9b26676 100644 (file)
 #ifndef LLIntOpcode_h
 #define LLIntOpcode_h
 
-#if ENABLE(LLINT)
-
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 
 #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
     FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro)
 
-#else // !ENABLE(LLINT_C_LOOP)
+#else // ENABLE(JIT)
 
 #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
     // Nothing to do here. Use the JIT impl instead.
 
-#endif // !ENABLE(LLINT_C_LOOP)
+#endif // !ENABLE(JIT)
 
 
 #define FOR_EACH_LLINT_NATIVE_HELPER(macro) \
 
 #define FOR_EACH_LLINT_OPCODE_EXTENSION(macro) FOR_EACH_LLINT_NATIVE_HELPER(macro)
 
-#else // !ENABLE(LLINT)
-
-#define FOR_EACH_LLINT_OPCODE_EXTENSION(macro) // Nothing to add.
-
-#endif // !ENABLE(LLINT)
-
 #endif // LLIntOpcode_h
index 5a10968..34c799e 100644 (file)
@@ -25,9 +25,6 @@
 
 #include "config.h"
 #include "LLIntSlowPaths.h"
-
-#if ENABLE(LLINT)
-
 #include "Arguments.h"
 #include "ArrayConstructor.h"
 #include "CallFrame.h"
@@ -476,7 +473,7 @@ LLINT_SLOW_PATH_DECL(stack_check)
     // For JIT enabled builds which uses the C stack, the stack is not growable.
     // Hence, if we get here, then we know a stack overflow is imminent. So, just
     // throw the StackOverflowError unconditionally.
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     ASSERT(!vm.interpreter->stack().containsAddress(exec->topOfFrame()));
     if (LIKELY(vm.interpreter->stack().ensureCapacityFor(exec->topOfFrame())))
         LLINT_RETURN_TWO(pc, 0);
@@ -1464,7 +1461,7 @@ extern "C" SlowPathReturnType llint_throw_stack_overflow_error(VM* vm, ProtoCall
     return encodeResult(0, 0);
 }
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM* vm, Register* newTopOfStack)
 {
     bool success = vm->interpreter->stack().ensureCapacityFor(newTopOfStack);
@@ -1484,5 +1481,3 @@ extern "C" NO_RETURN_DUE_TO_CRASH void llint_crash()
 }
 
 } } // namespace JSC::LLInt
-
-#endif // ENABLE(LLINT)
index 9c6f122..2f8cffd 100644 (file)
@@ -29,8 +29,6 @@
 #include "CommonSlowPaths.h"
 #include <wtf/StdLibExtras.h>
 
-#if ENABLE(LLINT)
-
 namespace JSC {
 
 class ExecState;
@@ -125,14 +123,12 @@ LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_resolve_scope);
 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_get_from_scope);
 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_to_scope);
 extern "C" SlowPathReturnType llint_throw_stack_overflow_error(VM*, ProtoCallFrame*) WTF_INTERNAL;
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM*, Register*) WTF_INTERNAL;
 #endif
 extern "C" NO_RETURN_DUE_TO_CRASH void llint_crash() WTF_INTERNAL;
 
 } } // namespace JSC::LLInt
 
-#endif // ENABLE(LLINT)
-
 #endif // LLIntSlowPaths_h
 
index a19719b..00a6456 100644 (file)
@@ -42,7 +42,6 @@
 namespace JSC {
 
 #if ENABLE(JIT)
-#if ENABLE(LLINT)
 
 namespace LLInt {
 
@@ -90,7 +89,6 @@ MacroAssemblerCodeRef programEntryThunkGenerator(VM* vm)
 
 } // namespace LLInt
 
-#endif // ENABLE(LLINT)
 #else // ENABLE(JIT)
 
 // Non-JIT (i.e. C Loop LLINT) case:
index b884e2b..98cff78 100644 (file)
@@ -26,8 +26,6 @@
 #ifndef LLIntThunks_h
 #define LLIntThunks_h
 
-#if ENABLE(LLINT)
-
 #include "MacroAssemblerCodeRef.h"
 
 namespace JSC {
@@ -51,6 +49,4 @@ MacroAssemblerCodeRef programEntryThunkGenerator(VM*);
 
 } } // namespace JSC::LLInt
 
-#endif // ENABLE(LLINT)
-
 #endif // LLIntThunks_h
index 122735c..20f8a65 100644 (file)
 
 #include "config.h"
 #include "LowLevelInterpreter.h"
-
-#if ENABLE(LLINT)
-
 #include "LLIntOfflineAsmConfig.h"
 #include <wtf/InlineASM.h>
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 #include "CodeBlock.h"
 #include "CommonSlowPaths.h"
 #include "LLIntCLoop.h"
@@ -530,6 +527,4 @@ JSValue CLoop::execute(OpcodeID entryOpcodeID, void* executableAddress, VM* vm,
 // for the interpreter, as compiled from LowLevelInterpreter.asm.
 #include "LLIntAssembly.h"
 
-#endif // !ENABLE(LLINT_C_LOOP)
-
-#endif // ENABLE(LLINT)
+#endif // ENABLE(JIT)
index 0274258..8621dbd 100644 (file)
 #ifndef LowLevelInterpreter_h
 #define LowLevelInterpreter_h
 
-#if ENABLE(LLINT)
-
 #include "Opcode.h"
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 
 namespace JSC {
 
@@ -47,8 +45,6 @@ FOR_EACH_CORE_OPCODE_ID(LLINT_OPCODE_ALIAS)
 
 } // namespace JSC
 
-#endif // ENABLE(LLINT_C_LOOP)
-
-#endif // ENABLE(LLINT)
+#endif // !ENABLE(JIT)
 
 #endif // LowLevelInterpreter_h
index b41917a..610b94b 100644 (file)
@@ -25,9 +25,6 @@
 
 #include "config.h"
 #include "CommonSlowPaths.h"
-
-#if ENABLE(JIT) || ENABLE(LLINT)
-
 #include "Arguments.h"
 #include "ArityCheckFailReturnThunks.h"
 #include "ArrayConstructor.h"
@@ -73,11 +70,7 @@ namespace JSC {
     } while (false)
 #endif
 
-#if ENABLE(LLINT)
 #define RETURN_TO_THROW(exec, pc)   pc = LLInt::returnToThrow(exec)
-#else
-#define RETURN_TO_THROW(exec, pc)
-#endif
 
 #define BEGIN()                           \
     BEGIN_NO_SET_PC();                    \
@@ -535,5 +528,3 @@ SLOW_PATH_DECL(slow_path_enter)
 }
 
 } // namespace JSC
-
-#endif // ENABLE(JIT) || ENABLE(LLINT)
index 748a8e6..d8ce5fa 100644 (file)
@@ -35,8 +35,6 @@
 #include "VM.h"
 #include <wtf/StdLibExtras.h>
 
-#if ENABLE(JIT) || ENABLE(LLINT)
-
 namespace JSC {
 
 // The purpose of this namespace is to include slow paths that are shared
@@ -202,6 +200,4 @@ SLOW_PATH_HIDDEN_DECL(slow_path_to_primitive);
 
 } // namespace JSC
 
-#endif // ENABLE(JIT) || ENABLE(LLINT)
-
 #endif // CommonSlowPaths_h
index 2b4ac08..beb52a3 100644 (file)
@@ -38,7 +38,7 @@ ErrorHandlingScope::ErrorHandlingScope(VM& vm)
     RELEASE_ASSERT(m_vm.stackPointerAtVMEntry());
     size_t newReservedZoneSize = Options::errorModeReservedZoneSize();
     m_savedReservedZoneSize = m_vm.updateReservedZoneSize(newReservedZoneSize);
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     m_vm.interpreter->stack().setReservedZoneSize(newReservedZoneSize);
 #endif
 }
@@ -47,7 +47,7 @@ ErrorHandlingScope::~ErrorHandlingScope()
 {
     RELEASE_ASSERT(m_vm.stackPointerAtVMEntry());
     m_vm.updateReservedZoneSize(m_savedReservedZoneSize);
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     m_vm.interpreter->stack().setReservedZoneSize(m_savedReservedZoneSize);
 #endif
 }
index 02bf5b9..ff9f614 100644 (file)
@@ -285,13 +285,7 @@ PassRefPtr<CodeBlock> ScriptExecutable::newReplacementCodeBlockFor(
 
 static void setupLLInt(VM& vm, CodeBlock* codeBlock)
 {
-#if ENABLE(LLINT)
     LLInt::setEntrypoint(vm, codeBlock);
-#else
-    UNUSED_PARAM(vm);
-    UNUSED_PARAM(codeBlock);
-    UNREACHABLE_FOR_PLATFORM();
-#endif
 }
 
 static void setupJIT(VM& vm, CodeBlock* codeBlock)
index 081defe..2d7adbd 100644 (file)
@@ -67,9 +67,7 @@ void initializeThreading()
         ExecutableAllocator::initializeAllocator();
 #endif
         JSStack::initializeThreading();
-#if ENABLE(LLINT)
         LLInt::initialize();
-#endif
 #ifndef NDEBUG
         DisallowGC::initialize();
 #endif
index 5f1304f..57e60c1 100644 (file)
@@ -55,7 +55,7 @@ class OSRExitCompiler;
 class SpeculativeJIT;
 }
 #endif
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 namespace LLInt {
 class CLoop;
 }
@@ -134,7 +134,7 @@ class JSValue {
     friend class DFG::OSRExitCompiler;
     friend class DFG::SpeculativeJIT;
 #endif
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     friend class LLInt::CLoop;
 #endif
 
@@ -313,7 +313,7 @@ public:
     uint32_t tag() const;
     int32_t payload() const;
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     // This should only be used by the LLInt C Loop interpreter who needs
     // synthesize JSValue from its "register"s holding tag and payload
     // values.
index df49fff..bfcc97c 100644 (file)
@@ -312,7 +312,7 @@ inline JSValue::JSValue(int i)
     u.asBits.payload = i;
 }
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
 inline JSValue::JSValue(int32_t tag, int32_t payload)
 {
     u.asBits.tag = tag;
index 961fdec..f0ddf98 100644 (file)
@@ -216,9 +216,6 @@ static void recomputeDependentOptions()
     Options::useDFGJIT() = false;
     Options::useFTLJIT() = false;
 #endif
-#if !ENABLE(LLINT)
-    Options::useLLInt() = false;
-#endif
 #if !ENABLE(YARR_JIT)
     Options::useRegExpJIT() = false;
 #endif
index f10a92f..3f7fb0e 100644 (file)
@@ -219,7 +219,7 @@ VM::VM(VMType vmType, HeapType heapType)
 #endif
     , m_stackPointerAtVMEntry(0)
     , m_stackLimit(0)
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     , m_jsStackLimit(0)
 #endif
 #if ENABLE(FTL_JIT)
@@ -234,7 +234,7 @@ VM::VM(VMType vmType, HeapType heapType)
     interpreter = new Interpreter(*this);
     StackBounds stack = wtfThreadData().stack();
     updateReservedZoneSize(Options::reservedZoneSize());
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     interpreter->stack().setReservedZoneSize(Options::reservedZoneSize());
 #endif
     setLastStackTop(stack.origin());
@@ -917,7 +917,7 @@ void VM::setEnabledProfiler(LegacyProfiler* profiler)
 void sanitizeStackForVM(VM* vm)
 {
     logSanitizeStack(vm);
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
     vm->interpreter->stack().sanitizeStack();
 #else
     sanitizeStackForVMImpl(vm);
index ba9bc01..5d648c6 100644 (file)
@@ -315,10 +315,8 @@ namespace JSC {
 
         void* enabledProfilerAddress() { return &m_enabledProfiler; }
 
-#if ENABLE(JIT) && ENABLE(LLINT)
+#if ENABLE(JIT)
         bool canUseJIT() { return m_canUseJIT; }
-#elif ENABLE(JIT)
-        bool canUseJIT() { return true; } // jit only
 #else
         bool canUseJIT() { return false; } // interpreter only
 #endif
@@ -392,7 +390,7 @@ namespace JSC {
         void** addressOfFTLStackLimit() { return &m_ftlStackLimit; }
 #endif
 
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
         void* jsStackLimit() { return m_jsStackLimit; }
         void setJSStackLimit(void* limit) { m_jsStackLimit = limit; }
 #endif
@@ -536,7 +534,7 @@ namespace JSC {
 #endif
         void* m_stackPointerAtVMEntry;
         size_t m_reservedZoneSize;
-#if ENABLE(LLINT_C_LOOP)
+#if !ENABLE(JIT)
         struct {
             void* m_stackLimit;
             void* m_jsStackLimit;
@@ -578,7 +576,7 @@ namespace JSC {
         return &m_vm->heap;
     }
 
-#if !ENABLE(LLINT_C_LOOP)
+#if ENABLE(JIT)
     extern "C" void sanitizeStackForVMImpl(VM*);
 #endif
 
index e6dca0d..793b777 100644 (file)
@@ -1,3 +1,17 @@
+2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
+
+        Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
+        https://bugs.webkit.org/show_bug.cgi?id=130389
+
+        Reviewed by Mark Lam.
+
+        Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
+        into !ENABLE(JIT) since they are mutually exclusive.
+
+        * wtf/OSAllocatorPosix.cpp:
+        (WTF::OSAllocator::reserveAndCommit):
+        * wtf/Platform.h:
+
 2014-06-18  Anders Carlsson  <andersca@apple.com>
 
         Add CF type cast function templates and use them in KeyedDecoder in WebKit2
index 61661ee..60cfbdd 100644 (file)
@@ -104,11 +104,9 @@ void* OSAllocator::reserveAndCommit(size_t bytes, Usage usage, bool writable, bo
 
     result = mmap(result, bytes, protection, flags, fd, 0);
     if (result == MAP_FAILED) {
-#if ENABLE(LLINT)
         if (executable)
             result = 0;
         else
-#endif
             CRASH();
     }
     if (result && includesGuardPages) {
index ba1efda..c06cbde 100644 (file)
 #endif
 #endif /* !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32_64) */
 
-/* Disable the JITs if we're forcing the cloop to be enabled */
-#if defined(ENABLE_LLINT_C_LOOP) && ENABLE_LLINT_C_LOOP
-#define ENABLE_JIT 0
-#define ENABLE_DFG_JIT 0
-#ifdef ENABLE_FTL_JIT
-#undef ENABLE_FTL_JIT
-#endif
-#define ENABLE_FTL_JIT 0
-#endif
-
 /* The JIT is enabled by default on all x86, x86-64, ARM & MIPS platforms except ARMv7k and Windows. */
 #if !defined(ENABLE_JIT) \
     && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)) \
 #define ENABLE_DISASSEMBLER 1
 #endif
 
-/* On some of the platforms where we have a JIT, we want to also have the 
-   low-level interpreter. */
-#if !defined(ENABLE_LLINT) \
-    && ENABLE(JIT) \
-    && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)) \
-    && ((OS(DARWIN) && !PLATFORM(EFL)) || PLATFORM(GTK) || PLATFORM(WIN)) \
-    && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL) || CPU(ARM64) || CPU(MIPS) || CPU(SH4))
-#define ENABLE_LLINT 1
-#endif
-
 #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT) && !COMPILER(MSVC)
 /* Enable the DFG JIT on X86 and X86_64.  Only tested on Mac, GNU/Linux and FreeBSD. */
 #if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD))
 #define ENABLE_CONCURRENT_JIT 1
 #endif
 
-/* If the jit is not available, enable the LLInt C Loop: */
+/* Disable the JIT if we force the LLInt C Loop */
+#if defined(ENABLE_LLINT_C_LOOP) && ENABLE_LLINT_C_LOOP
+#undef ENABLE_JIT
+#define ENABLE_JIT 0
+#endif
+
+/* If the baseline jit is not available, then disable upper tiers as well: */
 #if !ENABLE(JIT)
-#undef ENABLE_LLINT        /* Undef so that we can redefine it. */
-#undef ENABLE_LLINT_C_LOOP /* Undef so that we can redefine it. */
 #undef ENABLE_DFG_JIT      /* Undef so that we can redefine it. */
-#define ENABLE_LLINT 1
-#define ENABLE_LLINT_C_LOOP 1
+#undef ENABLE_FTL_JIT      /* Undef so that we can redefine it. */
 #define ENABLE_DFG_JIT 0
+#define ENABLE_FTL_JIT 0
 #endif
 
-/* Do a sanity check to make sure that we at least have one execution engine in
-   use: */
-#if !(ENABLE(JIT) || ENABLE(LLINT))
-#error You have to have at least one execution model enabled to build JSC
-#endif
 
 /* Generational collector for JSC */
 #if !defined(ENABLE_GGC)
 #endif
 
 /* Determine if we need to enable Computed Goto Opcodes or not: */
-#if HAVE(COMPUTED_GOTO) || !ENABLE(LLINT_C_LOOP)
+#if HAVE(COMPUTED_GOTO) || ENABLE(JIT)
 #define ENABLE_COMPUTED_GOTO_OPCODES 1
 #endif
 
 #define ENABLE_REGEXP_TRACING 0
 
 /* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */
-#if !defined(ENABLE_YARR_JIT) && (ENABLE(JIT) || ENABLE(LLINT_C_LOOP))
+#if !defined(ENABLE_YARR_JIT)
 #define ENABLE_YARR_JIT 1
 
 /* Setting this flag compares JIT results with interpreter results. */
index 975c672..a0d458e 100644 (file)
@@ -71,7 +71,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER ON)
@@ -103,7 +102,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(WTF_USE_TILED_BACKING_STORE ON)
 
 if (ENABLE_LLINT_C_LOOP)
     message(STATUS "Force enabling LLINT C LOOP.")
-    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT OFF)
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DFG_JIT OFF)
     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT OFF)
index 4d009a4..8fd571c 100644 (file)
@@ -38,7 +38,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER ON)
index f4420a7..3d23c99 100644 (file)
@@ -72,7 +72,6 @@ macro(WEBKIT_OPTION_BEGIN)
     WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_VENDOR_PREFIXES "Toggle Legacy Vendor Prefix Support" ON)
     WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_WEB_AUDIO "Toggle Legacy Web Audio support" ON)
     WEBKIT_OPTION_DEFINE(ENABLE_LINK_PREFETCH "Toggle pre fetching support" OFF)
-    WEBKIT_OPTION_DEFINE(ENABLE_LLINT "Enable JSC Low Level Interpreter" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_LLINT_C_LOOP "Force use of the llint c loop" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_MATHML "Toggle MathML support" ON)
     WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_CAPTURE "Toggle Media Capture support" OFF)
index 6a1c18f..c60daf3 100644 (file)
@@ -66,7 +66,6 @@
 #cmakedefine01 ENABLE_LEGACY_VENDOR_PREFIXES
 #cmakedefine01 ENABLE_LEGACY_WEB_AUDIO
 #cmakedefine01 ENABLE_LINK_PREFETCH
-#cmakedefine01 ENABLE_LLINT
 #cmakedefine01 ENABLE_LLINT_C_LOOP
 #cmakedefine01 ENABLE_MATHML
 #cmakedefine01 ENABLE_MEDIA_CAPTURE