SIL: Introduce lowered SILLayouts.

This gives us a concept we can eventually use to cache the lowered physical layout of fragile structs and classes, and more immediately, concretize the layout of closure boxes in a way that lets us represent the capture of generic environments and multiple captured values without compromising the "nominal" nature of box layouts. To start exercising the basic implementation, change the representation of SILBoxType to be in terms of a SILLayout, though avoid any immediate functionality change by preserving the single-boxed-type interface for now.
This commit is contained in:
Joe Groff
2016-10-19 14:01:18 -07:00
parent 22f5dfa50a
commit cabaa0a51a
11 changed files with 414 additions and 26 deletions

View File

@@ -29,6 +29,7 @@
#include "swift/SIL/SILFunction.h"
#include "swift/SIL/SILGlobalVariable.h"
#include "swift/SIL/Notifications.h"
#include "swift/SIL/SILLayout.h"
#include "swift/SIL/SILType.h"
#include "swift/SIL/SILVTable.h"
#include "swift/SIL/SILWitnessTable.h"
@@ -91,6 +92,7 @@ private:
friend class SILDefaultWitnessTable;
friend class SILFunction;
friend class SILGlobalVariable;
friend class SILLayout;
friend class SILType;
friend class SILVTable;
friend class SILUndef;