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

Fix some bugs with variadic tuple lowering and value-op outlining #64293

Merged
merged 6 commits into from Mar 11, 2023

Conversation

rjmccall
Copy link
Member

@rjmccall rjmccall commented Mar 10, 2023

This gets a test case suggested by Holly working. Builds on #64273.

slavapestov and others added 3 commits March 10, 2023 12:15
A lot of the fixes here are adjustments to compensate in the
fulfillment and metadata-path subsystems for the recent pack
substitutions representation change.  I think these adjustments
really make the case for why the change was the right one to make:
the code was clearly not considering the possibility of packs
in these positions, and the need to handle packs makes everything
work out much more cleanly.

There's still some work that needs to happen around type packs;
in particular, we're not caching them or fulfilling them as a
whole, and we do have the setup to do that properly now.
@rjmccall
Copy link
Member Author

@swift-ci Please test

…type.

Previously it was testing for opened existentials specifically.

We should really teach outlining to handle local archetypes properly.
We'd have to build a generic signature for the lowered type, and that
probably means also adding requirements that are relevant to value
operations, but it would mean outlining would benefit all types, and
it would let us avoid bundling in unnecessary information from the
enclosing generic environment.

A minor side-effect of this is that we no longer bind names to
opened element type values.  The names were things like \tau_1_0,
which is not very useful, especially in LLVM IR where \tau is
printed with two UTF-8 escapes.
…ions.

This probably isn't the right way to do it --- maybe there isn't a right
way to do it besides fixing the passes to handle this properly.  But it
gets the optimizer off our back for the moment.
@rjmccall
Copy link
Member Author

@swift-ci Please test

@rjmccall rjmccall requested review from slavapestov and nate-chandler and removed request for hyp, egorzhdan and zoecarver March 11, 2023 00:30
@rjmccall
Copy link
Member Author

@swift-ci Please test

@rjmccall rjmccall merged commit 1ead872 into apple:main Mar 11, 2023
@rjmccall rjmccall deleted the more-variadic-fixes branch March 11, 2023 08:21
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.

None yet

2 participants