Skip to content

rdar://64344067 (Architecture specialization) #462

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

neonichu
Copy link
Collaborator

This implements a "lite" version of architecture specialization, piggy-backing on superimposed parameters. The lite part is that we do not actually build an accurate set of architectures per client but instead will build the superset of all architectures required by any client, plus the default set of architectures inherent to the target. This means we might be overbuilding in certain cases, but we should no longer have issues with arches that are required by client targets missing from specialized targets.

This should be functional in basic terms, but has no tests yet and will break any tests involving specialization which closely monitor overrides due to the extra ARCHES override added here. I haven't yet decided whether I want to try to prune overrides that are superficial or update the affected tests.

This implements a "lite" version of architecture specialization, piggy-backing on superimposed parameters. The lite part is that we do not actually build an accurate set of architectures per client but instead will build the superset of all architectures required by any client, plus the default set of architectures inherent to the target. This means we might be overbuilding in certain cases, but we should no longer have issues with arches that are required by client targets missing from specialized targets.
@neonichu
Copy link
Collaborator Author

@swift-ci please test

@neonichu
Copy link
Collaborator Author

I'm also seeing a bunch of warnings like "warning: Could not determine settings for X when computing Swift AST paths for Y" since that computation is not using the real settings but settingsForProductReferenceTarget. I guess settingsForProductReferenceTarget should be updated to splat over ARCHES as well?

@neonichu
Copy link
Collaborator Author

neonichu commented Apr 29, 2025

The final merging logic needs to actually take platform specialization into account, right now we would be merging arches across platforms incorrectly.

I think that also means the merging logic might not necessarily work right today for multiple specialized targets.

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