Webkit llvm

WebKit1 will work if LLVMJIT support were added. B3JIT can be completely replaced.

JIT is memory inefficient. That is the problem. I almost started fixing it 2 months ago but am in a hospital with my computer equipment literally in another country and typing this left-handed because of a needle in my arm. Trust me. WebKit1 is fine otherwise. LLVM-JIT support is all it needs.

I still have no idea what you are talking about. Currently I hit errors at compile time on 32-bit due to big C++ files (specifically JSDomWindow.cpp). These files are needed even if you completely disable the JIT and have nothing to do with it.

WebKit1 or WebKit2 does not change anything regarded to JIT either. They use the exact same engine. WebKit1 runs it in the web browser process, webkit2 spawns a separate process. But it’s the same code.

Also, I think Apple is preparing to finally completely remove WebKitLegacy/WebKit1 from WebKit sources (15 years after deprecating it). So I don’t understand either “WebKit1 will work if LLVMJIT support were added” (it already works, and has worked for the last 15 years) nor “WebKit1 is fine otherwise” (it’s not, because it’s deprecated and going away soon-ish wether we want that or not).

They both suck. This is the root issue. LLVM-JIT came out shortly after the WebKit2 rabbit-trail. This is the memory-use bottleneck.

@PulkoMandy, how long have you been staring at this? Take a break for a while. Let somebody else fix the browser engine.

If I had my computer here I would. I built HaikuWebKit and as a fresh set of eyes, I noticed that the JIT was hilariously overbuilt.

I have not. The only thing I do in WebKit is rebase our changes on upstream and making sure it compiles. I made no major development on it since the end of my paid contract in 2015.

I am happy for other people to fix things, and indeed some people have. I don’t think my monthly-or-so rebase is getting in the way.

You still did not answer any of my questions, so let me repeat:

  • How can the JIT cause problem at compile time when building files related to the DOM, which you would still need no matter how you eventually interpret the Javascript?
  • How can the JIT cause problems on 32 bit where it is not even enabled? (WebKit does not support 32 bit x86 anymore and this is especially true for the JIT)
  • What problems is it causing, in the first place?

Memory consumption!

It takes forever to build, has so much junk that LLVM already comes with and doesn’t need to.

The executable size can be too big, for starters. Most of the JIT is generated at compile time.

Who is that someone else? Are you going to volunteer?

4 Likes

The webkit2 topic is about development of webkit2, Not about debating how shitty you personally think the JIT is. I don’t see the need why we need to have the “ICU is bloated” discussion again, this time in blue.

Your fix does nothing to adress the issue: gcc runs out of adress space on 32bit trying to compile some source files completely unrelated to the jit.

Whatever else you may think of the JIT, it has nothing to do with our 32bit port of webkit.

2 Likes

I should in the saddle in a week or 2.