-
Notifications
You must be signed in to change notification settings - Fork 10.3k
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
WIP [OpaqueValues] Initial enabling. #62495
base: main
Are you sure you want to change the base?
WIP [OpaqueValues] Initial enabling. #62495
Conversation
@swift-ci please benchmark |
@swift-ci please test |
|
Now things get interesting. Will it be less work to enable address lowering later in the pipeline after OSSA optimization runs? It's probably worth looking at some cases first to understand how address lowering is doing something different now than what SILGen used to produce. |
211e06a
to
ad59169
Compare
ad59169
to
7a860ae
Compare
@swift-ci please benchmark |
@swift-ci please apple silicon benchmark |
@swift-ci please test source compatibility |
|
|
7a860ae
to
b5eeb6e
Compare
@swift-ci please apple silicon benchmark |
@swift-ci please benchmark |
@swift-ci please apple silicon benchmark |
@swift-ci please benchmark |
@swift-ci please apple silicon benchmark |
1 similar comment
@swift-ci please apple silicon benchmark |
3e481ea
to
88b9b84
Compare
@swift-ci please apple silicon benchmark |
88b9b84
to
7905165
Compare
@swift-ci please apple silicon benchmark |
|
@swift-ci please apple silicon benchmark |
0f1299e
to
65476f5
Compare
@swift-ci please apple silicon benchmark |
|
65476f5
to
833bf56
Compare
@swift-ci please apple silicon benchmark |
833bf56
to
c0dd032
Compare
@swift-ci please apple silicon benchmark |
c0dd032
to
eaa231f
Compare
@swift-ci please apple silicon benchmark |
eaa231f
to
0519ded
Compare
@swift-ci please apple silicon benchmark |
@swift-ci please test source compatibility |
@swift-ci please apple silicon benchmark |
In address-lowered mode, to initialize tuple-typed memory in a single step, tuple_addr_constructor must generally be used because it's not possible to construct a tuple any of whose fields are address-only. In opaque values mode, there is no problem constructing such a tuple. So construct the tuple and then assign it into the tuple-typed memory; the single instruction that initializes the memory will be the assign.
The instruction exists to express the atomic initialization of a tuple-typed address in address-lowered mode. In opaque-values mode, this is expressed as an assign/store.
0519ded
to
5566549
Compare
@swift-ci please apple silicon benchmark |
Test enabling opaque values.