I'm about to land Spectre work that will break 32-bit DFG. So, let's disable it on Darwin. I recommend finally disabling the 32-bit DFG on other platforms, since it's not being tested or maintained.
Created attachment 335333 [details] the patch
Comment on attachment 335333 [details] the patch r=me.
(In reply to Filip Pizlo from comment #0) > I'm about to land Spectre work that will break 32-bit DFG. So, let's > disable it on Darwin. > > I recommend finally disabling the 32-bit DFG on other platforms, since it's > not being tested or maintained. While optimizations are not actively added like they are for 64-bit, I think this last statement is a clear exaggeration. We maintain testbots for jsconly mips and armv7, and gtk+/x86. We fix issues that arise, and have downstream deployments of these, where we have use cases where DFG makes a strong difference. I explained all that in a mailing list thread[1] for any reader that wants more context. We also plan on fixing the issues arising from the most recent/upcoming changes that break things on these platforms, while working on additional Spectre mitigations for them. [1] https://lists.webkit.org/pipermail/webkit-dev/2018-February/029870.html
Comment on attachment 335333 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=335333&action=review > Source/WTF/wtf/Platform.h:790 > +#if (CPU(ARM_THUMB2)) && (PLATFORM(GTK) || PLATFORM(WPE)) I believe it should be: /* Enable the DFG JIT on ARMv7 and MIPS. Only tested on GTK+/WPE Linux. */ #if (CPU(ARM_THUMB2) || CPU(MIPS)) && (PLATFORM(GTK) || PLATFORM(WPE)) Though we might need something slightly different for it to work on jsconly. Maybe it's time to add a PLATFORM(JSCONLY)? Or should we just use OS(LINUX)?
(In reply to Guillaume Emont from comment #4) > Comment on attachment 335333 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=335333&action=review > > > Source/WTF/wtf/Platform.h:790 > > +#if (CPU(ARM_THUMB2)) && (PLATFORM(GTK) || PLATFORM(WPE)) > > I believe it should be: > /* Enable the DFG JIT on ARMv7 and MIPS. Only tested on GTK+/WPE Linux. */ > #if (CPU(ARM_THUMB2) || CPU(MIPS)) && (PLATFORM(GTK) || PLATFORM(WPE)) > > Though we might need something slightly different for it to work on jsconly. > Maybe it's time to add a PLATFORM(JSCONLY)? Or should we just use OS(LINUX)? I'm OK for adding PLATFORM(JSCONLY) as long as it is only used to control compile time flags in Platform.h. It should not be used in the other places.
We won't do this for now.