Add a new Thunk-flag in SILFunction which specifies that a function is a thunk.

This will have an effect on inlining into thunks.
Currently this flag is set for witness thunks and thunks from function signature optimization.
No change in code generation, yet.



Swift SVN r24998
This commit is contained in:
Erik Eckstein
2015-02-05 16:45:05 +00:00
parent c896106de8
commit 9dfd349faf
36 changed files with 226 additions and 174 deletions

View File

@@ -32,6 +32,7 @@ SILFunction *SILFunction::create(SILModule &M, SILLinkage linkage,
IsBare_t isBareSILFunction,
IsTransparent_t isTrans,
IsFragile_t isFragile,
IsThunk_t isThunk,
ClassVisibility_t classVisibility,
Inline_t inlineStrategy, EffectsKind E,
SILFunction *insertBefore,
@@ -48,7 +49,7 @@ SILFunction *SILFunction::create(SILModule &M, SILLinkage linkage,
auto fn = new (M) SILFunction(M, linkage, name,
loweredType, contextGenericParams, loc,
isBareSILFunction, isTrans, isFragile,
isBareSILFunction, isTrans, isFragile, isThunk,
classVisibility, inlineStrategy, E,
insertBefore, debugScope, DC);
@@ -63,6 +64,7 @@ SILFunction::SILFunction(SILModule &Module, SILLinkage Linkage,
IsBare_t isBareSILFunction,
IsTransparent_t isTrans,
IsFragile_t isFragile,
IsThunk_t isThunk,
ClassVisibility_t classVisibility,
Inline_t inlineStrategy, EffectsKind E,
SILFunction *InsertBefore,
@@ -79,6 +81,7 @@ SILFunction::SILFunction(SILModule &Module, SILLinkage Linkage,
Bare(isBareSILFunction),
Transparent(isTrans),
Fragile(isFragile),
Thunk(isThunk),
ClassVisibility(classVisibility),
GlobalInitFlag(false),
InlineStrategy(inlineStrategy),