Hi Yusuke, I could see that the following comment from https://trac.webkit.org/changeset/245906/webkit,
>> We also disable this op_wide16 feature in Windows CLoop, which is used in AppleWin port. When the code size of >> CLoop::execute increases, MSVC starts generating CLoop::execute function with very large stack allocation >> requirement. Even before introducing this 16bit bytecode, CLoop::execute in AppleWin takes almost 100KB stack >> height. After introducing this, it becomes 160KB. While the semantics of the function is correctly compiled, >> such a large stack allocation is not essentially necessary, and this leads to stack overflow errors quite easily, >> and tests fail with AppleWin port because it starts throwing stack overflow range error in various places. >> In this patch, for now, we just disable op_wide16 feature for AppleWin so that CLoop::execute takes 100KB >> stack allocation because this patch is not focusing on fixing AppleWin's CLoop issue. We introduce a new backend >> type for LLInt, "C_LOOP_WIN". "C_LOOP_WIN" do not generate wide16 version of code to reduce the code size of >> CLoop::execute. In the future, we should investigate whether this MSVC issue is fixed in Visual Studio 2019. >> Or we should consider always enabling ASM LLInt for Windows. Does that mean high stack usage in Windows is a known issue? Thanks & Regards, Arun On Wed, 26 Jun 2019 at 12:10, Arunprasad Rajkumar <ararunpra...@gmail.com> wrote: > Thank you all for your guidance. > > I understand that JIT and LLInt bytecode interpreter is not supported on > X86(32-bit). The only option I can use is C_LOOP, which have high stack > usage issue in the latest code. I will continue with my investigation on > C_LOOP's stack usage. > > Thanks & Regards, > Arun > > > On Wed, 26 Jun 2019 at 04:13, Yusuke Suzuki <ysuz...@apple.com> wrote: > >> >> >> On Jun 25, 2019, at 9:13 AM, Adrian Perez de Castro <ape...@igalia.com> >> wrote: >> >> I was mistaken about one thing (sorry!), please read below... >> >> On Tue, 25 Jun 2019 19:01:54 +0300, Adrian Perez de Castro < >> ape...@igalia.com> wrote: >> >> On Tue, 25 Jun 2019 10:42:04 -0500, Michael Catanzaro < >> mcatanz...@igalia.com> wrote: >> >> It's great that you find our stable branches helpful, but keep in mind >> those branches do not include Windows-specific fixes. >> >> On Tue, Jun 25, 2019 at 9:53 AM, Arunprasad Rajkumar >> <ararunpra...@gmail.com> wrote: >> >> Right. Actually the problem is in 32-bit Windows platform. I see that >> the JIT support has been dropped some time ago, and CLOOP based >> backend seems to be unstable on 32-bit Windows. Any thoughts on that? >> >> >> So I'm not an expert here, but I understand there are three ways you >> can build JSC: >> >> (1) -DENABLE_JIT=ON, -DENABLE_C_LOOP=OFF >> (2) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=OFF (?) >> (3) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=ON >> >> (-DENABLE_JIT=ON and -DENABLE_C_LOOP=ON are incompatible.) >> >> I believe that nowadays the only 32-bit platforms supported by JIT are >> Linux, and there only for ARM and MIPS, not x86. So you're almost >> certainly going to need to use -DENABLE_JIT=OFF. That eliminates option >> (1). >> >> >> JIT works on x86 as long as your CPU has support for SSE2 instructions. >> >> >> Oops, this is not quite true: JIT does NOT work on 32-bit x86 at the >> moment. >> >> (The JIT compiler does emit SSE2 instructions, though. When/If the JIT is >> made to work on 32-bit x86, support for SSE2 will be needed.) >> >> >> WebKit no longer supports non-SSE2 x86 CPUs even without JIT. >> https://lists.webkit.org/pipermail/webkit-dev/2019-March/030569.html >> >> And I think we are not supporting 32bit Windows x86 JIT. CLoop (AppleWin) >> is recommended. >> >> -Yusuke >> >> >> You say the cloop seems unstable for you, which is option (3). So >> perhaps you should try option (2) if you haven't already. I'm not >> actually sure if that works, because I'm not an expert, which is why I >> added that (?) to it. But at least it couldn't hurt to try. >> >> >> Option (2) would be using the LLint bytecode interpreter, without JIT. >> >> In principle CLoop is expected to work “everywhere” because the >> interpreter >> is generated C/C++ code, which gets then built by the same compiler used >> to >> build all the rest of WebKit. >> >> Maybe the Windows port maintainers know more about the status of 32-bit >> Windows support? >> >> >> Cheers, >> —Adrián >> >> _______________________________________________ >> webkit-dev mailing list >> webkit-dev@lists.webkit.org >> https://lists.webkit.org/mailman/listinfo/webkit-dev >> >> >>
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev