[GTK] Use FTL by default when LLVM 3.7 is available
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Nov 2015 13:02:00 +0000 (13:02 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Nov 2015 13:02:00 +0000 (13:02 +0000)
commitdf805fcfc09080064e9e5427e048561665370b8b
tree85adf8edb0244348c66dbe516e41900d7ee1f60f
parentadb5413e69df09978e34058b08cd94b78360f8a6
[GTK] Use FTL by default when LLVM 3.7 is available
https://bugs.webkit.org/show_bug.cgi?id=142128

Reviewed by Csaba Osztrogon√°c.

.:

Enable FTL by default when architecture is X86_64. It requires
LLVM 3.7, but can be disabled manually as a cmake configure
argument.

* Source/cmake/FindLLVM.cmake: In debian llvm-config is only
available if the metapackage is installed and it points to
llvm-config-3.5. So, here we check first if the llvm-config is
from a recent enough version, and if not we check several
llvm-config-<version> programs, so this should work on any distro.
* Source/cmake/OptionsGTK.cmake: Enable FTL by default when
target architecture is X86_64, and check the LLVM is at least
3.7. The option is now public, since we want people to be able to
disable it manually.

Source/JavaScriptCore:

* PlatformGTK.cmake: Install libllvmForJSC.so.
* llvm/InitializeLLVMLinux.cpp:
(JSC::getLLVMInitializerFunction): For developer build try to load first
libllvmForJSC.so from standard paths since not installed binaries
have the RPATH set. If it fails try the installed one. For
production buils load always the installed one.

Tools:

* Scripts/run-javascriptcore-tests: Enable FTL for GTK+ port when
architecture is x86_64.
* Scripts/update-webkit-libs-jhbuild:
(cleanJhbuild): Remove also the separate Build directory used by
GTK+ port now.
* Scripts/webkitdirs.pm:
(isX86_64):
* Scripts/webkitperl/FeatureList.pm: Enable FTL by default for
GTK+ port when architecture is x86_64.
* gtk/jhbuild-optional.modules: Remove llvm.
* gtk/jhbuild.modules: Add llvm 3.7 and include it as dependecy
only when architecture is x86_64.
* gtk/jhbuildrc: Set a buildroot to use a separate build
directory. LLVM 3.7 fails to build if configure script is run from
source dir. Since it's not possible to use a separate build dir
only for llvm, we do it now globally. Modules not supporting non
source build dirs are marked in the moduleset. Also set x86_64
condition when the architecture is x86_64.
* gtk/patches/llvm-elf-add-stackmaps-arm64.patch: Removed.
* gtk/patches/llvm-elf-add-stackmaps.patch: Removed.
* gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch: Removed.
* gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch: Removed.
* jhbuild/jhbuild-wrapper: Use a newer jhbuild version to be able
to use conditions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@192469 268f45cc-cd09-0410-ab3c-d52691b4dbfc
19 files changed:
ChangeLog
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/PlatformGTK.cmake
Source/JavaScriptCore/llvm/InitializeLLVMLinux.cpp
Source/cmake/FindLLVM.cmake
Source/cmake/OptionsGTK.cmake
Tools/ChangeLog
Tools/Scripts/run-javascriptcore-tests
Tools/Scripts/update-webkit-libs-jhbuild
Tools/Scripts/webkitdirs.pm
Tools/Scripts/webkitperl/FeatureList.pm
Tools/gtk/jhbuild-optional.modules
Tools/gtk/jhbuild.modules
Tools/gtk/jhbuildrc
Tools/gtk/patches/llvm-elf-add-stackmaps-arm64.patch [deleted file]
Tools/gtk/patches/llvm-elf-add-stackmaps.patch [deleted file]
Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch [deleted file]
Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch [deleted file]
Tools/jhbuild/jhbuild-wrapper