[SR-381]: runtime resolution of type metadata from a name

replace ProtocolConformanceTypeKind with TypeMetadataRecordKind

metadata reference does not need to be indirectable

more efficient check for protocol conformances

remove swift_getMangledTypeName(), not needed yet

kill off Remangle.cpp for non-ObjC builds

cleanup

cleanup

cleanup comments
This commit is contained in:
Luke Howard
2015-12-30 22:43:15 -08:00
parent 4991734810
commit 70c5755adb
15 changed files with 692 additions and 83 deletions

View File

@@ -278,6 +278,14 @@ IRGenModule::IRGenModule(IRGenModuleDispatcher &dispatcher, SourceFile *SF,
ProtocolConformanceRecordPtrTy
= ProtocolConformanceRecordTy->getPointerTo(DefaultAS);
TypeMetadataRecordTy
= createStructType(*this, "swift.type_metadata_record", {
RelativeAddressTy,
Int32Ty
});
TypeMetadataRecordPtrTy
= TypeMetadataRecordTy->getPointerTo(DefaultAS);
FixedBufferTy = nullptr;
for (unsigned i = 0; i != MaxNumValueWitnesses; ++i)
ValueWitnessTys[i] = nullptr;