Skip to content

Conversation

@wenyongh
Copy link
Owner

Refactor LLVM Orc JIT to actually enable the lazy compilation:
https://llvm.org/docs/ORCv2.html#laziness
Main modifications:

  • Create LLVM module for each wasm function, wrap it with thread safe module
    so that the modules can be compiled parallelly
  • Lookup function from aot module instance's func_ptrs but not directly call the
    function to decouple the module relationship
  • Compile the function when it is first called and hasn't been compiled
  • Create threads to pre-compile the WASM functions parallelly when loading
  • Set Lazy JIT as default, update document and build/test scripts

Refactor LLVM Orc JIT to actually enable the lazy compilation:
  https://llvm.org/docs/ORCv2.html#laziness
Main modifications:
- Create LLVM module for each wasm function, wrap it with thread safe module
  so that the modules can be compiled parallelly
- Lookup function from aot module instance's func_ptrs but not directly call the
  function to decouple the module relationship
- Compile the function when it is first called and hasn't been compiled
- Create threads to pre-compile the WASM functions parallelly when loading
- Set Lazy JIT as default, update document and build/test scripts
@wenyongh wenyongh merged commit ad88eb9 into wenyongh:dev/refactor_orc_jit Nov 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant