Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[enhancement] AOT Jit-wrapper #1403

Closed
allight opened this issue May 8, 2024 · 1 comment
Closed

[enhancement] AOT Jit-wrapper #1403

allight opened this issue May 8, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@allight
Copy link
Collaborator

allight commented May 8, 2024

What's hard to do? (limit 100 words)

Jit wrapper needs to actually jit the code every time which can take a while

Current best alternative workaround (limit 100 words)

use jit

Your view of the "best case XLS enhancement" (limit 100 words)

Jit wrapper uses AOTd code to move compilation time to build.

@allight allight added the enhancement New feature or request label May 8, 2024
@allight allight added this to the Usability Sprint milestone May 8, 2024
@allight allight self-assigned this May 8, 2024
@allight
Copy link
Collaborator Author

allight commented May 8, 2024

This is split out of #851

copybara-service bot pushed a commit that referenced this issue May 20, 2024
This is useful for holding onto and using type pointers without a full package.

Bug: #1403
PiperOrigin-RevId: 635582663
copybara-service bot pushed a commit that referenced this issue May 20, 2024
The JIT would hard-code pointers to some XLS functions in order to call them during jit execution. This made the code impossible to run outside of the process that created the JIT since the functions may be at different addresses.

To fix this these functions are changed to be passed into the jitted code as a vtable argument in the instance_context argument. This ensures that the jit-ed code can still access all the runtime support it requires.

To avoid embedding Type* pointers into the code all type information is transmitted between the JIT code and the runtime as binary protos.

Bug: #1403
PiperOrigin-RevId: 635583402
copybara-service bot pushed a commit that referenced this issue May 20, 2024
This is to prepare for for better AOT support for msan.

BUG: #1403
PiperOrigin-RevId: 635584048
copybara-service bot pushed a commit that referenced this issue May 20, 2024
The AOT needs to have slightly different behavior.

Bug: #1418
Bug: #1403
PiperOrigin-RevId: 635591706
copybara-service bot pushed a commit that referenced this issue May 21, 2024
This allows one to interact with AOT code as they would with normal jit code.

Bug: #1403
PiperOrigin-RevId: 635908200
copybara-service bot pushed a commit that referenced this issue May 21, 2024
These can start to evolve separately.
BUG: #1403
PiperOrigin-RevId: 635917155
copybara-service bot pushed a commit that referenced this issue May 21, 2024
This speeds up startup for jit-wrapper using tools substantially (at the cost of making the name a bit of a lie).

Bug: #1403
Bug: #1422
PiperOrigin-RevId: 635926105
copybara-service bot pushed a commit that referenced this issue May 28, 2024
This adds support to aot_compiler_main to generate proc network AOTs and allows ProcRuntimes to be built using these compiled entrypoints.

Bug: #1403
PiperOrigin-RevId: 638069672
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant