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

Add edges vector to CodeInstance/CodeInfo to keep backedges as edges #54894

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

vtjnash
Copy link
Sponsor Member

@vtjnash vtjnash commented Jun 23, 2024

Appears to add about 1MB 3MB (117MB to 120MB) to the system image, and to decrease the stdlib size by 2MB 54 MB (305MB to 251MB), so seems overall favorable right now. The edges are not being computed yet following the encoding https://hackmd.io/sjPig55kS4a5XNWC6HmKSg?both#Edges-Encoding to correctly reflect the backedges but they currently are just extracting the :invoke fields.

TODO: we currently store 2 copies of the edges during serialization (in both the svec and the old format) which should help recover a portion of the overhead for the stdlibs.

TODO: this records edges only to the MI, not to the recursive edges (as required for correctness)

@vtjnash
Copy link
Sponsor Member Author

vtjnash commented Jul 11, 2024

@nanosoldier runbenchmarks("inference", vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@oscardssmith
Copy link
Member

Given that this is now a pure regression size-wise, can the description be updated to more clearly explain why this PR is a good thing?

@aviatesk
Copy link
Sponsor Member

I'm working on rebasing this.

@aviatesk
Copy link
Sponsor Member

@nanosoldier runbenchmarks("inference", vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@aviatesk
Copy link
Sponsor Member

@nanosoldier runbenchmarks("inference", vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@aviatesk aviatesk force-pushed the jn/codeinfo-edges branch 3 times, most recently from a9c4eeb to fe8d042 Compare September 27, 2024 09:49
This records all invoke targets as edges as a functionality test, before
finishing the implementation of recording the edges accurately during
inference (via backedges + inference).
Start computing edges from stmt_info later (after CodeInstance is able
to have been allocated for recursion) instead of immediately.
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.

4 participants