SIL: Uncurry function types within the Swift type system.

Remove uncurry level as a property of SILType/SILFunctionTypeInfo. During SIL type lowering, map a (Type, UncurryLevel) pair to a Swift CanType with the uncurried arguments as a Swift tuple. For example, T -> (U, V) -> W at uncurry level 1 becomes ((U, V), T) -> W--in reverse order to match the low-level calling convention. Update SILGen and IRGen all over the place for this representation change.

SILFunctionTypeInfo is still used in the SILType representation, but it's no longer load-bearing. Everything remaining in it can be derived from a Swift type.

This is an ABI break. Be sure to rebuild clean!

Swift SVN r5296
This commit is contained in:
Joe Groff
2013-05-24 01:51:07 +00:00
parent 9d34624669
commit 5e2779b51e
23 changed files with 750 additions and 750 deletions

View File

@@ -73,11 +73,6 @@ public:
return LoweredType.getFunctionTypeInfo();
}
/// Returns the uncurry level of this entry point.
unsigned getUncurryLevel() const {
return getFunctionTypeInfo()->getUncurryLevel();
}
/// Returns the calling convention used by this entry point.
AbstractCC getAbstractCC() const {
return getLoweredType().getFunctionCC();