Bug 184187

Summary: Online version of the LLInt
Product: WebKit Reporter: JF Bastien <jfbastien>
Component: JavaScriptCoreAssignee: JF Bastien <jfbastien>
Status: RESOLVED WONTFIX    
Severity: Normal CC: fpizlo, jfbastien, keith_miller, mark.lam, msaboff, rmorisset, saam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 185106    
Bug Blocks:    
Attachments:
Description Flags
patch jfbastien: commit-queue-

JF Bastien
Reported 2018-03-30 11:31:51 PDT
The LLInt is currently entirely generated at JSC compile time, assembled with the binary, and doesn't JIT anything. That's great for when there aren't any JIT privileges and we want to keep that property! However, there are neat fancy things that we could do if, when we can JIT, we generated the LLInt on the fly. In other words, we want an online offline assembler. So we'd still have say x86 and ARM LLInt codegen, but we'd *also* have LLInt codegen to the macro assembler, which we then would compile into JSC. At VM startup we'd then try to JIT that compiled macro assembler code, into actual assembly (either x86 or ARM). What we want is therefore a compiler compiler that generates native code for a JavaScript interpreter.
Attachments
patch (99.26 KB, patch)
2018-03-30 11:33 PDT, JF Bastien
jfbastien: commit-queue-
JF Bastien
Comment 1 2018-03-30 11:33:00 PDT
Created attachment 336873 [details] patch Here's a patch which goes most of the way to this working. There's a bug still which I haven't tracked down, and a bit of debug logging too.
JF Bastien
Comment 2 2018-03-30 11:34:04 PDT
Some of the macro assembler changes I should split out and commit as their own thing.
JF Bastien
Comment 3 2018-03-30 12:32:53 PDT
JF Bastien
Comment 4 2018-04-27 21:13:44 PDT
Separate macro assembler improvements in https://bugs.webkit.org/show_bug.cgi?id=185106
Note You need to log in before you can comment on or make changes to this bug.