WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Fix "coding" style in EFL cmake file
jsc-b3.diff (text/plain), 14.70 KB, created by
Carlos Garcia Campos
on 2016-02-03 09:37:22 PST
(
hide
)
Description:
Fix "coding" style in EFL cmake file
Filename:
MIME Type:
Creator:
Carlos Garcia Campos
Created:
2016-02-03 09:37:22 PST
Size:
14.70 KB
patch
obsolete
>diff --git a/ChangeLog b/ChangeLog >index 9e230c0..b3c0bf8 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,13 @@ >+2016-02-03 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ [GTK][EFL] Switch FTL to B3 >+ https://bugs.webkit.org/show_bug.cgi?id=153478 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Source/cmake/OptionsEfl.cmake: >+ * Source/cmake/OptionsGTK.cmake: >+ > 2016-02-02 Joseph Pecoraro <pecoraro@apple.com> > > Unreviewed attempt to fix Mac CMake build after r195999. >diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt >index e9b59f6..d397d55 100644 >--- a/Source/JavaScriptCore/CMakeLists.txt >+++ b/Source/JavaScriptCore/CMakeLists.txt >@@ -991,36 +991,11 @@ list(APPEND JavaScriptCore_SOURCES > llint/LowLevelInterpreter.cpp > ) > >- > if (ENABLE_FTL_JIT) >- # Configure llvmForJSC.so >- set(llvmForJSC_SOURCES >- llvm/library/LLVMAnchor.cpp >- llvm/library/LLVMExports.cpp >- llvm/library/LLVMOverrides.cpp >- ) >- set(llvmForJSC_INCLUDE_DIRECTORIES >- ${LLVM_INCLUDE_DIRS} >- "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" >- ) >- >- add_custom_command( >- OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h >- COMMAND ${CMAKE_COMMAND} -E touch ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h >- VERBATIM) >- >- # Added extra items for JavaScriptCore >- list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES >- ${LLVM_INCLUDE_DIRS} >- ) >- > list(APPEND JavaScriptCore_SOURCES > dfg/DFGToFTLDeferredCompilationCallback.cpp > dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp > >- disassembler/LLVMDisassembler.cpp >- disassembler/X86Disassembler.cpp >- > ftl/FTLAbstractHeap.cpp > ftl/FTLAbstractHeapRepository.cpp > ftl/FTLAvailableRecovery.cpp >@@ -1071,7 +1046,32 @@ if (ENABLE_FTL_JIT) > ftl/FTLThunks.cpp > ftl/FTLUnwindInfo.cpp > ftl/FTLValueRange.cpp >+ ) >+endif () >+ >+if (USE_LLVM_DISASSEMBLER) >+ # Configure llvmForJSC.so >+ set(llvmForJSC_SOURCES >+ llvm/library/LLVMAnchor.cpp >+ llvm/library/LLVMExports.cpp >+ llvm/library/LLVMOverrides.cpp >+ ) >+ set(llvmForJSC_INCLUDE_DIRECTORIES >+ ${LLVM_INCLUDE_DIRS} >+ "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" >+ ) > >+ add_custom_command( >+ OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h >+ COMMAND ${CMAKE_COMMAND} -E touch ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h >+ VERBATIM) >+ >+ # Added extra items for JavaScriptCore >+ list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES >+ ${LLVM_INCLUDE_DIRS} >+ ) >+ >+ list(APPEND JavaScriptCore_SOURCES > llvm/InitializeLLVM.cpp > llvm/LLVMAPI.cpp > ) >@@ -1366,12 +1366,12 @@ endif () > > WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() > >-if (ENABLE_FTL_JIT AND NOT WIN32) >+if (USE_LLVM_DISASSEMBLER AND NOT WIN32) > if (NOT llvmForJSC_LIBRARIES) > set(llvmForJSC_LIBRARIES ${LLVM_STATIC_LIBRARIES}) > endif () > if (NOT llvmForJSC_LIBRARIES) >- message(FATAL_ERROR "No LLVM libs found, but FTL is enabled. Stopping build.") >+ message(FATAL_ERROR "No LLVM libs found, but LLVM disassembler is enabled. Stopping build.") > endif () > > WEBKIT_WRAP_SOURCELIST(${llvmForJSC_SOURCES}) >@@ -1416,7 +1416,7 @@ if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED") > install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}") > endif () > >-if (ENABLE_FTL_JIT) >+if (USE_LLVM_DISASSEMBLER) > add_dependencies(JavaScriptCore llvmForJSC) > endif () > >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index beb260e..e12a62f 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,23 @@ >+2016-02-03 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ [GTK][EFL] Switch FTL to B3 >+ https://bugs.webkit.org/show_bug.cgi?id=153478 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Conditionalize code to make it possible to build FTL completely without LLVM. >+ >+ * CMakeLists.txt: >+ * dfg/DFGCommon.h: >+ * dfg/DFGPlan.cpp: >+ (JSC::DFG::Plan::compileInThreadImpl): >+ * ftl/FTLAbbreviatedTypes.h: >+ * ftl/FTLFail.cpp: >+ (JSC::FTL::fail): >+ * ftl/FTLState.cpp: >+ (JSC::FTL::State::State): >+ (JSC::FTL::State::~State): >+ > 2016-02-03 Carlos Garcia Campos <cgarcia@igalia.com> > > Unreviewed. Fix JavaScriptCore build with B3 enabled. >diff --git a/Source/JavaScriptCore/PlatformGTK.cmake b/Source/JavaScriptCore/PlatformGTK.cmake >index 2fb7893..bdcfb34 100644 >--- a/Source/JavaScriptCore/PlatformGTK.cmake >+++ b/Source/JavaScriptCore/PlatformGTK.cmake >@@ -38,7 +38,7 @@ if (ENABLE_INTROSPECTION) > ) > endif () > >-if (ENABLE_FTL_JIT) >+if (USE_LLVM_DISASSEMBLER) > set(llvmForJSC_LIBRARIES ${LLVM_LIBRARIES}) > set(llvmForJSC_INSTALL_DIR "${LIB_INSTALL_DIR}/javascriptcoregtk-${WEBKITGTK_API_VERSION}") > endif () >diff --git a/Source/JavaScriptCore/dfg/DFGCommon.h b/Source/JavaScriptCore/dfg/DFGCommon.h >index 5553d10..78162eb 100644 >--- a/Source/JavaScriptCore/dfg/DFGCommon.h >+++ b/Source/JavaScriptCore/dfg/DFGCommon.h >@@ -37,7 +37,7 @@ namespace JSC { namespace DFG { > > // We are in the middle of a transition from LLVM to B3 as the backend for the FTL. This flag will go > // away once that transition is finished. For now, we enable B3 only on some platforms. >-#if CPU(X86_64) && PLATFORM(MAC) && ENABLE(FTL_JIT) >+#if CPU(X86_64) && ENABLE(FTL_JIT) > #define FTL_USES_B3 1 > #else > #define FTL_USES_B3 0 >diff --git a/Source/JavaScriptCore/dfg/DFGPlan.cpp b/Source/JavaScriptCore/dfg/DFGPlan.cpp >index 512f447..c7d892b 100644 >--- a/Source/JavaScriptCore/dfg/DFGPlan.cpp >+++ b/Source/JavaScriptCore/dfg/DFGPlan.cpp >@@ -455,15 +455,20 @@ Plan::CompilationPath Plan::compileInThreadImpl(LongLivedState& longLivedState) > > dumpAndVerifyGraph(dfg, "Graph just before FTL lowering:", shouldDumpDisassembly(mode)); > >+#if HAVE(LLVM) && !FTL_USES_B3 > bool haveLLVM; >+#endif > Safepoint::Result safepointResult; > { > GraphSafepoint safepoint(dfg, safepointResult); >+#if HAVE(LLVM) && !FTL_USES_B3 > haveLLVM = initializeLLVM(); >+#endif > } > if (safepointResult.didGetCancelled()) > return CancelPath; >- >+ >+#if HAVE(LLVM) && !FTL_USES_B3 > if (!haveLLVM) { > if (Options::ftlCrashesIfCantInitializeLLVM()) { > dataLog("LLVM can't be initialized.\n"); >@@ -472,6 +477,7 @@ Plan::CompilationPath Plan::compileInThreadImpl(LongLivedState& longLivedState) > finalizer = std::make_unique<FailedFinalizer>(*this); > return FailPath; > } >+#endif > > FTL::State state(dfg); > FTL::lowerDFGToLLVM(state); >diff --git a/Source/JavaScriptCore/ftl/FTLAbbreviatedTypes.h b/Source/JavaScriptCore/ftl/FTLAbbreviatedTypes.h >index 9ba46b2..a517a9e 100644 >--- a/Source/JavaScriptCore/ftl/FTLAbbreviatedTypes.h >+++ b/Source/JavaScriptCore/ftl/FTLAbbreviatedTypes.h >@@ -43,11 +43,20 @@ namespace JSC { namespace FTL { > typedef B3::BasicBlock* LBasicBlock; > typedef B3::Type LType; > typedef B3::Value* LValue; >+ >+typedef void* LAtomicOrdering; >+typedef void* LBuilder; >+typedef void* LCallConv; >+typedef void* LContext; >+typedef void* LIntPredicate; >+typedef void* LLinkage; >+typedef void* LModule; >+typedef void* LRealPredicate; >+typedef void* LMemoryBuffer; > #else > typedef LLVMBasicBlockRef LBasicBlock; > typedef LLVMTypeRef LType; > typedef LLVMValueRef LValue; >-#endif > > typedef LLVMAtomicOrdering LAtomicOrdering; > typedef LLVMBuilderRef LBuilder; >@@ -58,6 +67,7 @@ typedef LLVMLinkage LLinkage; > typedef LLVMModuleRef LModule; > typedef LLVMRealPredicate LRealPredicate; > typedef LLVMMemoryBufferRef LMemoryBuffer; >+#endif > > enum SynchronizationScope { SingleThread, CrossThread }; > >diff --git a/Source/JavaScriptCore/ftl/FTLFail.cpp b/Source/JavaScriptCore/ftl/FTLFail.cpp >index ac2fc07..d154ebd 100644 >--- a/Source/JavaScriptCore/ftl/FTLFail.cpp >+++ b/Source/JavaScriptCore/ftl/FTLFail.cpp >@@ -40,8 +40,10 @@ void fail(State& state) > { > state.graph.m_plan.finalizer = std::make_unique<FailedFinalizer>(state.graph.m_plan); > >+#if !FTL_USES_B3 > if (state.module) > llvm->DisposeModule(state.module); >+#endif > } > > } } // namespace JSC::FTL >diff --git a/Source/JavaScriptCore/ftl/FTLState.cpp b/Source/JavaScriptCore/ftl/FTLState.cpp >index 2eac409..e17e80c18 100644 >--- a/Source/JavaScriptCore/ftl/FTLState.cpp >+++ b/Source/JavaScriptCore/ftl/FTLState.cpp >@@ -44,7 +44,11 @@ using namespace DFG; > > State::State(Graph& graph) > : graph(graph) >+#if FTL_USES_B3 >+ , context(nullptr) >+#else > , context(llvm->ContextCreate()) >+#endif > , module(0) > , function(0) > , generatedFunction(0) >@@ -85,7 +89,9 @@ State::State(Graph& graph) > > State::~State() > { >+#if !FTL_USES_B3 > llvm->ContextDispose(context); >+#endif > } > > void State::dumpState(const char* when) >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index 5ed7bfb..72a5c79 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,14 @@ >+2016-02-03 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ [GTK][EFL] Switch FTL to B3 >+ https://bugs.webkit.org/show_bug.cgi?id=153478 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Enable B3 by default on all x86. >+ >+ * wtf/Platform.h: >+ > 2016-02-01 Said Abou-Hallawa <sabouhallawa@apple.com> > > Cache the Path instead of creating it every time it is required >diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h >index f184f59..861539d 100644 >--- a/Source/WTF/wtf/Platform.h >+++ b/Source/WTF/wtf/Platform.h >@@ -716,10 +716,6 @@ > #define HAVE_LLVM 1 > #endif > >-#if PLATFORM(GTK) && HAVE(LLVM) && ENABLE(JIT) && !defined(ENABLE_FTL_JIT) && CPU(X86_64) >-#define ENABLE_FTL_JIT 1 >-#endif >- > /* The FTL *does not* work on 32-bit platforms. Disable it even if someone asked us to enable it. */ > #if USE(JSVALUE32_64) > #undef ENABLE_FTL_JIT >@@ -785,9 +781,8 @@ > #define ENABLE_CONCURRENT_JIT 1 > #endif > >-/* The B3 compiler is an experimental backend that is still in development. We will keep it building >- on Mac/x86-64 for now, though it is unused except for tests. */ >-#if (PLATFORM(MAC) || PLATFORM(IOS)) && (CPU(X86_64) || CPU(ARM64)) && ENABLE(FTL_JIT) >+/* This controls whether B3 is built. It will not be used unless FTL_USES_B3 is enabled. */ >+#if (CPU(X86_64) || CPU(ARM64)) && ENABLE(FTL_JIT) > #define ENABLE_B3_JIT 1 > #endif > >diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake >index 2438c63..c194cfe 100644 >--- a/Source/cmake/OptionsEfl.cmake >+++ b/Source/cmake/OptionsEfl.cmake >@@ -69,12 +69,6 @@ else () > set(WebKit2_VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter") > endif () > >-if (WTF_CPU_X86_64) >- set(ENABLE_FTL_DEFAULT ON) >-else () >- set(ENABLE_FTL_DEFAULT OFF) >-endif () >- > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ALLINONE_BUILD PUBLIC OFF) >@@ -97,7 +91,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PUBLIC OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA_V2 PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS_LEVEL_2 PUBLIC OFF) >-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ${ENABLE_FTL_DEFAULT}) >+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ${WTF_CPU_X86_64}) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD_DEPRECATED PUBLIC ON) >@@ -282,20 +276,15 @@ if (ENABLE_SPEECH_SYNTHESIS) > find_package(Espeak REQUIRED) > endif () > >-if (ENABLE_FTL_JIT) >- if (WTF_CPU_X86_64) >- find_package(LLVM 3.6.0 REQUIRED) >- elseif (WTF_CPU_ARM64) >- find_package(LLVM REQUIRED) >- if (NOT "${LLVM_VERSION}" STREQUAL "3.5.0ftl") >- message(FATAL_ERROR "FTL JIT is only available on AArch64 architecture with patched LLVM 3.5.0, use Tools/Scripts/update-webkitefl-libs llvm-3.5-for-AArch64 to build it.") >- endif () >- else () >- message(FATAL_ERROR "FTL JIT is only available on X86_64 and AArch64 architectures.") >- endif () >+if (USE_LLVM_DISASSEMBLER) >+ find_package(LLVM REQUIRED) > SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) > endif () > >+if (ENABLE_FTL_JIT AND NOT WTF_CPU_X86_64 AND NOT DEVELOPER_MODE) >+ message(FATAL_ERROR "FTL JIT is only available on X86_64 architecture.") >+endif () >+ > if (ENABLE_SUBTLE_CRYPTO) > find_package(GnuTLS 3.0.0 REQUIRED) > endif () >diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake >index fbd3c7f..aefe3e2 100644 >--- a/Source/cmake/OptionsGTK.cmake >+++ b/Source/cmake/OptionsGTK.cmake >@@ -66,12 +66,6 @@ if (NOT OPENGL_FOUND AND OPENGLES2_FOUND) > set(ENABLE_GLES2_DEFAULT ON) > endif () > >-if (WTF_CPU_X86_64) >- set(ENABLE_FTL_DEFAULT ON) >-else () >- set(ENABLE_FTL_DEFAULT OFF) >-endif () >- > # Public options specific to the GTK+ port. Do not add any options here unless > # there is a strong reason we should support changing the value of the option, > # and the option is not relevant to any other WebKit ports. >@@ -133,7 +127,6 @@ endif () > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CREDENTIAL_STORAGE PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) >-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ${ENABLE_FTL_DEFAULT}) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ICONDATABASE PUBLIC ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT PUBLIC ON) >@@ -153,6 +146,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_SET PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SELECTORS_LEVEL4 PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATABASE_PROCESS PRIVATE ON) >+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PRIVATE ${WTF_CPU_X86_64}) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE PRIVATE ON) >@@ -234,11 +228,11 @@ if (ENABLE_CREDENTIAL_STORAGE) > endif () > endif () > >-if (ENABLE_FTL_JIT) >+if (USE_LLVM_DISASSEMBLER) > if (WTF_CPU_X86_64) > find_package(LLVM 3.7) > if (NOT LLVM_FOUND) >- message(FATAL_ERROR "LLVM 3.7 is required for ENABLE_FTL_JIT") >+ message(FATAL_ERROR "LLVM 3.7 is required for USE_LLVM_DISASSEMBLER") > endif () > SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) > else ()
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 153478
:
270193
|
270333
|
270334
|
270337
|
270550
|
270560
|
270562
|
270579
| 270580