[SIL] Separate thunks from signature optimization from other thunks.

Signature optimization is slightly different to (most) other thunks, in that
it's taking an existing function and turning that into a thunk, rather than
creating a thunk that calls an existing function. These symbols can be public,
etc. and so need to be handled a bit different to other types of thunks.
This commit is contained in:
Huon Wilson
2018-06-26 14:53:58 +10:00
parent d82137b3da
commit 413501b34a
9 changed files with 59 additions and 51 deletions

View File

@@ -40,7 +40,12 @@ class SILProfiler;
enum IsBare_t { IsNotBare, IsBare };
enum IsTransparent_t { IsNotTransparent, IsTransparent };
enum Inline_t { InlineDefault, NoInline, AlwaysInline };
enum IsThunk_t { IsNotThunk, IsThunk, IsReabstractionThunk };
enum IsThunk_t {
IsNotThunk,
IsThunk,
IsReabstractionThunk,
IsSignatureOptimizedThunk
};
class SILSpecializeAttr final {
friend SILFunction;