-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[IRGen] Generate compressed representation of value witnesses #63813
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
[IRGen] Generate compressed representation of value witnesses #63813
Conversation
…er of increments at runtime
…and metadata pointers
@swift-ci test |
@@ -58,6 +58,7 @@ copied, but do not need to be released or retained. | |||
I16 = 's', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This whole file is outdated and should be removed/replaced with the current design
@mikeash Could you take a look at the Metadata ABI related changes? |
461e909
to
2081478
Compare
@swift-ci test |
@swift-ci test |
@swift-ci test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The runtimey bits look good to me, a few little changes suggested.
@swift-ci test macos |
1 similar comment
@swift-ci test macos |
@swift-ci test |
@@ -4430,6 +4430,12 @@ ExtendedExistentialTypeCacheEntry::getOrCreateVWT(Key key) { | |||
swift_unreachable("shape with unknown special kind had no suggested VWT"); | |||
} | |||
|
|||
const uint8_t * | |||
ExtendedExistentialTypeCacheEntry::getOrCreateTypeLayout(Key key) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is okay because we don't access the type layout string today in this case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I changed it to nullptr
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with fixes for the two issues pointed out in various reviews:
- We should make sure that the metadata's type layout string is address-discriminated signed
- We need to make sure that we are doing the right thing with multi-payload enums which use spare bits for the tag
11f5b16
to
171e461
Compare
@swift-ci test |
@swift-ci test |
@swift-ci test macos |
@swift-ci test |
@swift-ci smoke test macos |
…thods.sil for changed layout of type metadata after swiftlang#63813
…anged_full_typemetadata_layout Adjust test/IRGen/ptrauth-foreign.sil and test/IRGen/ptrauth-class-methods.sil for changed layout of type metadata after #63813
rdar://105837040