Skip to content

Conversation

@wenyongh
Copy link
Owner

Refactor LLVM Orc JIT to actually enable the lazy compilation and speedup
the launching process:
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 and speedup
the launching process:
  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 b4aae18 into wenyongh:main Jan 20, 2022
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