SILSerializer: handle sil_global and sil_global_addr.

Always serialize global variables and deserialize a global variable lazily
when deserializing SILGlobalAddr.

rdar://15493552


Swift SVN r10884
This commit is contained in:
Manman Ren
2013-12-05 21:56:02 +00:00
parent 5ada4c8797
commit 395b8f4eda
6 changed files with 170 additions and 11 deletions

View File

@@ -331,12 +331,15 @@ void Serializer::writeBlockInfoBlock() {
RECORD(sil_block, SIL_INST_NO_OPERAND);
RECORD(sil_block, SIL_VTABLE);
RECORD(sil_block, SIL_VTABLE_ENTRY);
RECORD(sil_block, SIL_GLOBALVAR);
BLOCK(SIL_INDEX_BLOCK);
RECORD(sil_index_block, SIL_FUNC_NAMES);
RECORD(sil_index_block, SIL_FUNC_OFFSETS);
RECORD(sil_index_block, SIL_VTABLE_NAMES);
RECORD(sil_index_block, SIL_VTABLE_OFFSETS);
RECORD(sil_index_block, SIL_GLOBALVAR_NAMES);
RECORD(sil_index_block, SIL_GLOBALVAR_OFFSETS);
BLOCK(KNOWN_PROTOCOL_BLOCK);
#define PROTOCOL(Id) RECORD(index_block, Id);