RESOLVED WONTFIX 43688
[Qt] Enable JIT on WinCE
https://bugs.webkit.org/show_bug.cgi?id=43688
Summary [Qt] Enable JIT on WinCE
Patrick R. Gansterer
Reported 2010-08-08 09:03:19 PDT
Enable the JIT on Windows CE with ARM. After bug 43303 we need to generate a object file and link it with qmake.
Attachments
Error while trying to compile GeneratedJITStubs_MSVC.asm (33.20 KB, text/plain)
2010-08-09 02:04 PDT, Ismail Donmez
no flags
Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE (1.35 KB, patch)
2010-08-09 02:32 PDT, Ismail Donmez
no flags
Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE (1.76 KB, patch)
2010-08-09 02:58 PDT, Ismail Donmez
no flags
Next try (1.49 KB, patch)
2010-08-09 03:33 PDT, Ismail Donmez
no flags
Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE (1.49 KB, patch)
2010-08-09 03:48 PDT, Ismail Donmez
no flags
Ismail Donmez
Comment 1 2010-08-09 02:04:19 PDT
Created attachment 63871 [details] Error while trying to compile GeneratedJITStubs_MSVC.asm
Ismail Donmez
Comment 2 2010-08-09 02:04:51 PDT
I am trying to add asm file to build system but armasm.exe fails to compile it, I attached the error log.
Patrick R. Gansterer
Comment 3 2010-08-09 02:14:56 PDT
(In reply to comment #2) > I am trying to add asm file to build system but armasm.exe fails to compile it, I attached the error log. #offset# should be replaced with 32. This seams to be a problem with your build environment. Where did you generated the GeneratedJITStubs_MSVC.asm? I always generate it on Linux, because I was never successful on Windows (http://trac.webkit.org/wiki/QtWebKitPackaging).
Ismail Donmez
Comment 4 2010-08-09 02:15:51 PDT
I generate it on Windows, let me replace it by hand. We can tackle that problem later.
Ismail Donmez
Comment 5 2010-08-09 02:32:52 PDT
Created attachment 63877 [details] Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE
Patrick R. Gansterer
Comment 6 2010-08-09 02:36:58 PDT
There is something missing in the patch: a) ENABLE_JIT as preprocessordefine (or in Platform.h) or b) a addional check for for ENABLE_JIT before linking the new objectfile
Patrick R. Gansterer
Comment 7 2010-08-09 02:37:47 PDT
(In reply to comment #5) > Created an attachment (id=63877) [details] > Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE Please also add the bugnumber into the ChangeLog.
Ismail Donmez
Comment 8 2010-08-09 02:38:26 PDT
I forgot about a, for b) I will need to find a good way of checking it. Thanks!
Ismail Donmez
Comment 9 2010-08-09 02:58:58 PDT
Created attachment 63878 [details] Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE Try two.
Patrick R. Gansterer
Comment 10 2010-08-09 03:15:04 PDT
(In reply to comment #9) > Created an attachment (id=63878) [details] > Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE > > Try two. Clear r-: 1) Missing ChangeLog for Platform.h 2) Wrong place for ENABLE_JIT (don't use OS(WINDOWS); JIT is only supported for ARM now) 3) Set a #define only when when not already set (#ifndef). It must be possible to turn it off by a preprocessordefine. 4) There is already an #define ENABLE_JIT 1 in line 940 at Platform.h IMHO setting ENABLE_JIT should be done in the pro-file (no changes to the Platform.h) and only form ARM platform. Add the asm file only for ARM in the pro-file, because WinCE also supports X86, MIPS, SH1. PS: Please use svn-create-patch. It adds addional info.
Ismail Donmez
Comment 11 2010-08-09 03:33:38 PDT
Created attachment 63880 [details] Next try - Enables JIT only on ARM - Defines ENABLE_JIT in WebCore.pro
Patrick R. Gansterer
Comment 12 2010-08-09 03:43:11 PDT
(In reply to comment #11) > Created an attachment (id=63880) [details] > Next try > > - Enables JIT only on ARM > - Defines ENABLE_JIT in WebCore.pro 1) Is "contains(DEFINES, ARM)" the prefered way to check for ARM? Is there no special plaform variable to check for? I think this is normaly done via checking for makespec. 2) There are two spaces in "asm_compiler.commands += -o ...". Otherwise LGTM!
Ismail Donmez
Comment 13 2010-08-09 03:46:48 PDT
I am not really sure about the proper way for checking ARM but Qt defined the following variable for ARM mkspecs: _ARMV4I_ armv4i _ARM_ ARM _M_ARM __arm__
Ismail Donmez
Comment 14 2010-08-09 03:48:57 PDT
Created attachment 63881 [details] Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE Fixup double space.
Patrick R. Gansterer
Comment 15 2010-08-09 04:06:24 PDT
(In reply to comment #13) > I am not really sure about the proper way for checking ARM but Qt defined the following variable for ARM mkspecs: _ARMV4I_ armv4i _ARM_ ARM _M_ARM __arm__ Let's see what the Qt folks say. ;-) Did you run the LayoutTests for this change? This change is a good candidate for problems. ;-) As far as I know the run-webkit-tests don't work for WinCE (at least for me). I never tried all tests, because I had no problems. But to enable it in the default configuration this is required IMHO.
Ismail Donmez
Comment 16 2010-08-09 04:08:43 PDT
(In reply to comment #15) > (In reply to comment #13) > > I am not really sure about the proper way for checking ARM but Qt defined the following variable for ARM mkspecs: _ARMV4I_ armv4i _ARM_ ARM _M_ARM __arm__ > Let's see what the Qt folks say. ;-) > > Did you run the LayoutTests for this change? This change is a good candidate for problems. ;-) > > As far as I know the run-webkit-tests don't work for WinCE (at least for me). > I never tried all tests, because I had no problems. But to enable it in the default configuration this is required IMHO. I don't even know how can LayoutTests can run on WinCE! :) I don't think Qt team runs WebKit tests on WinCE. Also, I think I already found a problem, loading http://sabah.com.tr is stuck at 83% when JIT is enabled.
Patrick R. Gansterer
Comment 17 2010-08-09 04:15:17 PDT
(In reply to comment #16) > I don't even know how can LayoutTests can run on WinCE! :) I don't think Qt team runs WebKit tests on WinCE. Compile DumpRenderTree and run it with the files in LayoutTests. I never tried this for WinCE, only on Linux. > Also, I think I already found a problem, loading http://sabah.com.tr is stuck at 83% when JIT is enabled. So it won't be a good idea to enable it by default at the moment.
Ismail Donmez
Comment 18 2010-08-09 07:08:27 PDT
(In reply to comment #17) > (In reply to comment #16) > > I don't even know how can LayoutTests can run on WinCE! :) I don't think Qt team runs WebKit tests on WinCE. > Compile DumpRenderTree and run it with the files in LayoutTests. I never tried this for WinCE, only on Linux. I will try this but no promises, device is slow as 400mhz. > > Also, I think I already found a problem, loading http://sabah.com.tr is stuck at 83% when JIT is enabled. > So it won't be a good idea to enable it by default at the moment. True, we should disable this by default.
Ismail Donmez
Comment 19 2010-08-09 08:16:17 PDT
DumpRenderTree will not compile out of the box, it needs wcecompat to compile it seems. I'll see what I can do tomorrow.
Ismail Donmez
Comment 20 2010-08-10 00:50:01 PDT
I compiled DumpRenderTree put it on the device, passing LayoutTests path as the argument but I have zero output but the process seems to be running.
Ismail Donmez
Comment 21 2010-08-10 05:15:39 PDT
Got DRT running but the results will take a long time, I will give an update in time.
Ismail Donmez
Comment 22 2010-08-13 06:49:44 PDT
I also hit an assertion while loading http://sabah.com.tr ; ASSERTION FAILED: !m_closed (..\..\..\WebCore\platform\text\SegmentedString.cpp:144 WebCore::SegmentedString::append)
Ismail Donmez
Comment 23 2010-08-16 04:05:19 PDT
Ok I tested multiple configurations for http://sabah.com.tr problem; JIT = 1, YARR = 1, YARR_JIT = 1 fails. JIT= 1, YARR = 1, YARR_JIT= 0, fails. JIT = 0, YARR = 0, YARR_JIT = 0, works JIT = 0, YARR = 1, YARR_JIT = 0, works
Andreas Kling
Comment 24 2010-10-07 01:13:56 PDT
Comment on attachment 63881 [details] Add GeneratedJITStubs_MSVC.asm to the build system for Windows CE Removing from review queue as agreed on IRC. Switching on the JIT breaks many websites right now, and is not ready to go in.
Benjamin Poulain
Comment 25 2011-01-14 07:21:02 PST
Any news on this? I lower the priority since this does not seem active :(
Ismail Donmez
Comment 26 2011-01-14 07:22:29 PST
Sadly I don't have time to test this atm.
Patrick R. Gansterer
Comment 27 2011-01-14 08:53:58 PST
(In reply to comment #25) > Any news on this? IMHO it should work now, but I'm not able to run any test suite. Many of the run-javascriptcore-tests already fail already without JIT, so I can't say if it works with JIT enabled. Are there any _working_ test for WinCE JavaScriptCore at Nokia? Can someone try to enable JIT and tell me what's not wokring correctly? Maybe you need the patch from bug 52450 at the moment, because r64818 <http://trac.webkit.org/changeset/64818> broke JIT WinCE Qt.
Benjamin Poulain
Comment 28 2011-01-14 10:22:10 PST
(In reply to comment #27) > Are there any _working_ test for WinCE JavaScriptCore at Nokia? Can someone try to enable JIT and tell me what's not wokring correctly? Nope, nobody of the WebKit team works on WinCE. This platform is supported by another team who make sure the abstractions used by WebKit are working. Ismail did some nice contribution as well to make QtWebKit rocks on WinCE.
Ismail Donmez
Comment 29 2011-01-14 11:16:11 PST
OK Let me test this next week, I still have WinCE6 tablets around with Qt.
Patrick R. Gansterer
Comment 30 2011-01-26 07:30:27 PST
(In reply to comment #29) > OK Let me test this next week, I still have WinCE6 tablets around with Qt. "Next week" is over :-) I tried http://sabah.com.tr a few minutes ago and it seams to be working correctly now.
Ismail Donmez
Comment 31 2011-01-26 07:32:56 PST
(In reply to comment #30) > (In reply to comment #29) > > OK Let me test this next week, I still have WinCE6 tablets around with Qt. > "Next week" is over :-) > I tried http://sabah.com.tr a few minutes ago and it seams to be working correctly now. I am busy with Android work still :( If sabah.com.tr works and haberturk.com works then it must be OK :)
Patrick R. Gansterer
Comment 32 2011-01-26 07:36:21 PST
(In reply to comment #31) > If sabah.com.tr works and haberturk.com works then it must be OK :) haberturk.com works too. :-)
Ismail Donmez
Comment 33 2011-01-26 07:39:03 PST
(In reply to comment #32) > (In reply to comment #31) > > If sabah.com.tr works and haberturk.com works then it must be OK :) > haberturk.com works too. :-) Thats good to go then! Thanks.
Patrick R. Gansterer
Comment 34 2013-10-31 01:29:05 PDT
Qt has been removed from tree.
Note You need to log in before you can comment on or make changes to this bug.