RESOLVED FIXED 137521
[WinCairo] Enable JIT on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=137521
Summary [WinCairo] Enable JIT on 32-bit.
peavo
Reported 2014-10-08 06:41:06 PDT
I believe we can enable JIT, since the requirement to run on older CPUs (pre SSE2) is not that important for WinCairo.
Attachments
Patch (14.24 KB, patch)
2014-10-08 07:05 PDT, peavo
no flags
Patch (3.91 KB, patch)
2014-10-08 11:46 PDT, peavo
no flags
Patch (3.91 KB, patch)
2014-10-08 12:32 PDT, peavo
no flags
peavo
Comment 1 2014-10-08 07:05:07 PDT
Brent Fulgham
Comment 2 2014-10-08 09:39:08 PDT
This seems fine to me; it won't affect the Apple Windows port.
Alex Christensen
Comment 3 2014-10-08 09:59:44 PDT
Did the jit used to require sse2? Wasn't the jit enabled before? Couldn't we check to see if the CPU supports sse2 and enable it at runtime? Shouldn't the apple port do this, too? I don't think this is a good idea
Michael Saboff
Comment 4 2014-10-08 10:21:34 PDT
(In reply to comment #3) > Did the jit used to require sse2? Wasn't the jit enabled before? Couldn't we check to see if the CPU supports sse2 and enable it at runtime? Shouldn't the apple port do this, too? I don't think this is a good idea The LLInt and JITs use the SSE2 instructions for FP calculations. We could check at runtime (patch welcome), but this should only be on a 32 bit path. The Apple port doesn't need to check, all Intel Macs have new enough CPUs.
peavo
Comment 5 2014-10-08 10:35:41 PDT
(In reply to comment #4) > (In reply to comment #3) > > Did the jit used to require sse2? Wasn't the jit enabled before? Couldn't we check to see if the CPU supports sse2 and enable it at runtime? Shouldn't the apple port do this, too? I don't think this is a good idea > > The LLInt and JITs use the SSE2 instructions for FP calculations. We could check at runtime (patch welcome), but this should only be on a 32 bit path. > > The Apple port doesn't need to check, all Intel Macs have new enough CPUs. Would it be sufficient to do the same as in http://trac.webkit.org/changeset/167061, only adding a SSE2 check? I searched through the code generated by the LLInt, and didn't find any SSE2 instructions, only x87 floating point instructions, as far as I could see.
Michael Saboff
Comment 6 2014-10-08 10:58:49 PDT
(In reply to comment #5) > (In reply to comment #4) > > (In reply to comment #3) > > > Did the jit used to require sse2? Wasn't the jit enabled before? Couldn't we check to see if the CPU supports sse2 and enable it at runtime? Shouldn't the apple port do this, too? I don't think this is a good idea > > > > The LLInt and JITs use the SSE2 instructions for FP calculations. We could check at runtime (patch welcome), but this should only be on a 32 bit path. > > > > The Apple port doesn't need to check, all Intel Macs have new enough CPUs. > > Would it be sufficient to do the same as in http://trac.webkit.org/changeset/167061, only adding a SSE2 check? That would probably work. > I searched through the code generated by the LLInt, and didn't find any SSE2 instructions, only x87 floating point instructions, as far as I could see. My bad. I don't do much with the X87 part of the offline assembler. The JIT don't have the SSE / X87 switch. They only have an SSE2 path.
peavo
Comment 7 2014-10-08 11:46:17 PDT
Alex Christensen
Comment 8 2014-10-08 11:56:51 PDT
I don't think adding the llint to the 32bit wincairo port without it enabled in the 32bit AppleWin port would be worth the small performance gain for the large risk of someone breaking something and nobody noticing
peavo
Comment 9 2014-10-08 12:12:07 PDT
(In reply to comment #8) > I don't think adding the llint to the 32bit wincairo port without it enabled in the 32bit AppleWin port would be worth the small performance gain for the large risk of someone breaking something and nobody noticing In the latest patch there is no difference between AppleWin and WinCairo; both enable LLINT, but disable JIT runtime if SSE2 is not present.
Mark Lam
Comment 10 2014-10-08 12:25:26 PDT
Comment on attachment 239483 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239483&action=review Looks good but please fix the ChangeLog comments. Thanks. > Source/JavaScriptCore/ChangeLog:8 > + Enable JIT on Windows 32-bit, but disable it runtime if SSE2 is not present. typo": disable it *at* runtime > Source/WTF/ChangeLog:8 > + Enable JIT on Windows 32-bit, but disable it runtime if SSE2 is not present. ditto. Please fix comment.
peavo
Comment 11 2014-10-08 12:32:29 PDT
Mark Lam
Comment 12 2014-10-08 12:33:22 PDT
Comment on attachment 239487 [details] Patch r=me
peavo
Comment 13 2014-10-08 12:34:38 PDT
(In reply to comment #12) > (From update of attachment 239487 [details]) > r=me Thanks for your help and review, guys :)
WebKit Commit Bot
Comment 14 2014-10-08 13:16:49 PDT
Comment on attachment 239487 [details] Patch Clearing flags on attachment: 239487 Committed r174473: <http://trac.webkit.org/changeset/174473>
WebKit Commit Bot
Comment 15 2014-10-08 13:16:54 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.