Change the type of function values in SIL to SILFunctionType.

Perform major abstraction remappings in SILGen.  Introduce
thunking functions as necessary to map between abstraction
patterns.

Swift SVN r10562
This commit is contained in:
John McCall
2013-11-19 22:55:09 +00:00
parent 07b7bf7bf7
commit 20e58dcf93
111 changed files with 7108 additions and 3946 deletions

View File

@@ -29,14 +29,13 @@ using namespace swift;
using namespace irgen;
IRGenFunction::IRGenFunction(IRGenModule &IGM,
ExplosionKind explosionLevel,
llvm::Function *Fn,
SILDebugScope *DbgScope,
Optional<SILLocation> DbgLoc)
: IGM(IGM), Builder(IGM.getLLVMContext()),
CurFn(Fn), CurExplosionLevel(explosionLevel),
ContextPtr(nullptr),
DbgScope(DbgScope) {
CurFn(Fn), ContextPtr(nullptr), DbgScope(DbgScope)
{
// Make sure the instructions in this function are attached its debug scope.
if (IGM.DebugInfo) {
// Functions, especially artificial thunks and closures, are often