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

Implement hot/cold code splitting #77583

Open
MichalStrehovsky opened this issue Oct 28, 2022 · 3 comments
Open

Implement hot/cold code splitting #77583

MichalStrehovsky opened this issue Oct 28, 2022 · 3 comments

Comments

@MichalStrehovsky
Copy link
Member

Port #74963 to NativeAot.

@cshung
Copy link
Member

cshung commented Oct 31, 2022

Hi @MichalStrehovsky, I had a prototype for this.

The prototype is able to turn on the CORJIT_FLAG_PROCSPLIT flag and interacts with the JIT under this mode.

Right now, it will perform the procedure split, generate the code, and place it in the binary.

End-to-end execution fails because we aren't generating the proper unwind data yet.

I am stuck trying to figure out how that works, in particular, if I wanted to generate a chained unwind info, I need the RVA to the associated runtime function record, but I can't find how the runtime function records are generated in NativeAOT.

@MichalStrehovsky
Copy link
Member Author

Hi @MichalStrehovsky, I had a prototype for this.

Nice!

End-to-end execution fails because we aren't generating the proper unwind data yet.

Yep, this is the main unknown for me too. I don't know much (or anything, to be precise) about unwinding since I never had to work with that codebase.

Cc @VSadov

@MichalStrehovsky
Copy link
Member Author

Once hot/cold splitting is available, we should re-measure #78370.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants