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

[SR-3722] Lay out of partially-opaque aggregates #46307

Open
ematejska mannequin opened this issue Jan 25, 2017 · 4 comments
Open

[SR-3722] Lay out of partially-opaque aggregates #46307

ematejska mannequin opened this issue Jan 25, 2017 · 4 comments
Labels
affects ABI Flag: Affects ABI task

Comments

@ematejska
Copy link
Mannequin

ematejska mannequin commented Jan 25, 2017

Previous ID SR-3722
Radar rdar://problem/31411221
Original Reporter @ematejska
Type Task
Additional Detail from JIRA
Votes 0
Component/s
Labels Task, AffectsABI
Assignee None
Priority Medium

md5: a21fe6ef95bd4b08859b864fa7a24dc9

Issue Description:

This bug is tracking investigating how to most efficiently lay out partially-opaque aggregates before ABI Stability is achieved.

@bob-wilson
Copy link

@swift-ci create

@atrick
Copy link
Member

atrick commented Sep 12, 2017

The optimizer makes assumptions about layout equivalence. See canUnsafeCastStruct/Tuple/Enum. This code should be centralized in an ABI spec (see SR-3730). But we also need to make sure this code honors resilience boundaries. Currently it just runs over the list of stored properties on the type.

@bob-wilson
Copy link

After reviewing this, we have decided not to tackle changes for this in Swift 5. We'll lose some optimization opportunities for fragile generic structs that are published with the old algorithm, but we can still adjust the algorithm for future compiler versions.

@bob-wilson
Copy link

By the way, we're tracking any changes to the optimizer's assumptions about layout in rdar://problem/34395744 (to address Andy's comment above).

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects ABI Flag: Affects ABI task
Projects
None yet
Development

No branches or pull requests

2 participants