RESOLVED FIXED 143998
[CMake] Clean up JSC JIT options
https://bugs.webkit.org/show_bug.cgi?id=143998
Summary [CMake] Clean up JSC JIT options
Michael Catanzaro
Reported 2015-04-21 10:35:57 PDT
* ENABLE_LLINT_C_LOOP is the opposite of ENABLE_JIT. It would be nonsense to have both or neither enabled, so there's no need for these to be separate options. * Add ENABLE_DFG_JIT and have ENABLE_FTL_JIT depend on it. * Add ENABLE_FTL_NATIVE_CALL_INLINING option, dependent on ENABLE_FTL_JIT. If you currently build with -DENABLE_LLINT_C_LOOP=ON, you will instead want to build with -DENABLE_JIT=OFF. If you currently build with -DENABLE_JIT=ON on a platform that supports baseline JIT but not DFG JIT, you'll need to add -DENABLE_DFG_JIT=OFF.
Attachments
Patch (7.74 KB, patch)
2015-04-21 11:07 PDT, Michael Catanzaro
no flags
Patch (8.60 KB, patch)
2015-04-21 11:53 PDT, Michael Catanzaro
no flags
Patch (8.69 KB, patch)
2015-04-22 12:56 PDT, Michael Catanzaro
no flags
[CMake] Should be possible for an option to depend on multiple options (3.52 KB, patch)
2015-04-23 08:57 PDT, Michael Catanzaro
no flags
Filip Pizlo
Comment 1 2015-04-21 10:36:59 PDT
This makes a lot of sense!
Michael Catanzaro
Comment 2 2015-04-21 11:04:40 PDT
Note, this patch in its current form is part of a long chain of patches (hence no r? yet), and needs to be committed alongside the patch in bug #143997 (or changed to not depend on that). Also note I don't touch the Xcode files here in an attempt to not break anything on Macs, only the CMake files, since they did not already have an ENABLE_JIT option. That would be a good follow-up. I did remove the option from FeatureList.pm, since I think that won't break anything. Alternative: remove the ENABLE_JIT option from the CMake port, and keep just ENABLE_LLINT_C_LOOP. I thought ENABLE_JIT was a nicer option to present to users, but the Xcode files and FeatureList.pm have ENABLE_LLINT_C_LOOP but not ENABLE_JIT, so this would make things consistent between both ports without requiring changes anywhere but the CMake files.
Michael Catanzaro
Comment 3 2015-04-21 11:07:20 PDT
Michael Catanzaro
Comment 4 2015-04-21 11:53:05 PDT
I took the time to do this properly, so it no longer depends on bug #143997.
Michael Catanzaro
Comment 5 2015-04-21 11:53:28 PDT
Michael Catanzaro
Comment 6 2015-04-21 11:54:18 PDT
Comment on attachment 251248 [details] Patch Ah but it still depends on bug #143831, whoops....
Michael Catanzaro
Comment 7 2015-04-22 12:56:33 PDT
WebKit Commit Bot
Comment 8 2015-04-22 19:16:25 PDT
Comment on attachment 251359 [details] Patch Clearing flags on attachment: 251359 Committed r183159: <http://trac.webkit.org/changeset/183159>
WebKit Commit Bot
Comment 9 2015-04-22 19:16:29 PDT
All reviewed patches have been landed. Closing bug.
Csaba Osztrogonác
Comment 10 2015-04-23 06:22:47 PDT
Comment on attachment 251359 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=251359&action=review > Tools/Scripts/webkitperl/FeatureList.pm:-438 > - { option => "cloop", desc => "Force use of the llint c loop", > - define => "ENABLE_LLINT_C_LOOP", default => 0, value => \$forceCLoop }, With this change we lost build-webkit's --cloop option. Of course, --cmakeargs="-DENABLE_JIT=0" still works. (I haven't used --cloop option of build-webkit ever and don't plan to do it in the future, just noticed it.)
Michael Catanzaro
Comment 11 2015-04-23 07:45:29 PDT
Ah, I didn't realize that list of options was used for anything besides the default values. I think we should probably bring that back, as otherwise you won't be able to use build-webkit on various architectures. Options: (a) convert the XCode build to use ENABLE_JIT so that we can restore the option to FeatureList.pm, or (b) revert this patch and instead remove the ENABLE_JIT option from the CMake build. Maybe (b) is the way to go. When I wrote this patch, I did not realize that only CMake had the ENABLE_JIT option.
Michael Catanzaro
Comment 12 2015-04-23 08:57:46 PDT
Created attachment 251439 [details] [CMake] Should be possible for an option to depend on multiple options
Michael Catanzaro
Comment 13 2015-04-23 13:17:07 PDT
(Ignore that bogus attachment.) (In reply to comment #11) > Options: (a) convert the XCode build to use ENABLE_JIT so that we can > restore the option to FeatureList.pm, or (b) revert this patch and instead > remove the ENABLE_JIT option from the CMake build. > > Maybe (b) is the way to go. When I wrote this patch, I did not realize that > only CMake had the ENABLE_JIT option. Filip, Ossy, what do you prefer?
Csaba Osztrogonác
Comment 14 2015-04-27 01:56:30 PDT
(In reply to comment #11) > Ah, I didn't realize that list of options was used for anything besides the > default values. I think we should probably bring that back, as otherwise you > won't be able to use build-webkit on various architectures. > > Options: (a) convert the XCode build to use ENABLE_JIT so that we can > restore the option to FeatureList.pm, or (b) revert this patch and instead > remove the ENABLE_JIT option from the CMake build. > > Maybe (b) is the way to go. When I wrote this patch, I did not realize that > only CMake had the ENABLE_JIT option. I would prefer option (a), I think ENABLE_JIT is more descriptive name than ENABLE_LLINT_C_LOOP. Additionally they are the opposite of each other, why should we have two different option? So I think we should use ENABLE_JIT everywhere, only the following files should be changed: - Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:464 - */FeatureDefines.xcconfig - Platform.h:762 - build-jsc
Michael Catanzaro
Comment 15 2015-04-27 18:32:49 PDT
Aye-aye, see bug #144304.
Note You need to log in before you can comment on or make changes to this bug.