Skip to content

Conversation

swiftix
Copy link
Contributor

@swiftix swiftix commented Sep 20, 2017

A couple of fixes in layout constraints handling:

  • Extend the sil-combine peephole for the canBeClass builtin to make use of the fact that archetypes with a trivial layout constraint can never represent a class.
  • Do not inline callees whose generic type parameters are layout constrained unless the types in the substitution are statically known to have the same layout constraints.
    • This is a temporary limitation due to the fact that it is currently impossible to express in SIL a conversion from T to e.g. T : _Trivial(64), and such a conversion is required during inlining of generic functions with layout constrained generic type parameters
  • Fix the IRGen alignment issue related to layout constrained archetypes.

@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

@swiftix swiftix force-pushed the layout-constraints-improvements branch from 28aef8a to d1fdcf1 Compare September 20, 2017 16:10
@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

@swiftix swiftix force-pushed the layout-constraints-improvements branch from d1fdcf1 to d2541d0 Compare September 20, 2017 20:14
@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

@swiftix swiftix force-pushed the layout-constraints-improvements branch from d2541d0 to ac73a65 Compare September 20, 2017 23:40
@swiftix
Copy link
Contributor Author

swiftix commented Sep 20, 2017

@swift-ci please smoke test

@swiftix swiftix merged commit d3fab7f into swiftlang:master Sep 21, 2017
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