Skip to content

Cherry-pick PR #7811 to stable/20230725 #7908

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

Merged

Conversation

rastogishubham
Copy link

No description provided.

DIEDedupeTopLevelRef is a CAS block that holds no data and has
references to DIEDataRef CAS blocks. This makes it easy to check that a
DIETopLevelRef in a CAS is valid, as it should only have 3 references to
it, a DIEDedupeTopLevelRef, a DIEAbbrevSetRef, and a DIEDistinctDataRef

(cherry picked from commit 2a479c0)
With this change, the layout of the debug info section in MCCAS has been
changed. Now, if there is a DIE that can be split off into it's own
CAS block, we do not attach it to its parent CAS block as a reference,
it gets added as a neighbor instead. This reduces the dependencies
between CAS blocks and increases chances of deduplication if a
DIEDataRef doesn't dedupe, by making sure it's parent will still dedupe.

This change also re-writes the materialization of the debug info section
to be iterative, rather than recursive.

(cherry picked from commit 038c057)
@rastogishubham
Copy link
Author

@swift-ci please test

@rastogishubham rastogishubham merged commit c3a1207 into swiftlang:stable/20230725 Dec 20, 2023
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