SIL: Add SILGlobalAddrInst.

Like GlobalAddrInst, but for SILGlobalVariables. These would become the same instruction when SILGlobalVariable can replace AST-level global references.

Swift SVN r10510
This commit is contained in:
Joe Groff
2013-11-16 00:50:18 +00:00
parent 0cc9417fef
commit 4c0ebedc6a
12 changed files with 78 additions and 11 deletions

View File

@@ -381,6 +381,15 @@ public:
require(!GAI->getGlobal()->getDeclContext()->isLocalContext(),
"GlobalAddr cannot take the address of a local var");
}
void checkSILGlobalAddrInst(SILGlobalAddrInst *GAI) {
require(GAI->getType().isAddress(),
"SILGlobalAddr must have an address result type");
require(GAI->getType().getObjectType() ==
GAI->getReferencedGlobal()->getLoweredType(),
"SILGlobalAddr must be the address type of the variable it "
"references");
}
void checkIntegerLiteralInst(IntegerLiteralInst *ILI) {
require(ILI->getType().is<BuiltinIntegerType>(),