@@ -81,6 +81,12 @@ enum class IRGenEmbedMode : unsigned {
8181 EmbedBitcode
8282};
8383
84+ enum class SwiftAsyncFramePointerKind : unsigned {
85+ Auto, // Choose Swift async extended frame info based on deployment target.
86+ Always, // Unconditionally emit Swift async extended frame info.
87+ Never, // Don't emit Swift async extended frame info.
88+ };
89+
8490using clang::PointerAuthSchema;
8591
8692struct PointerAuthOptions : clang::PointerAuthOptions {
@@ -282,6 +288,8 @@ class IRGenOptions {
282288
283289 IRGenLLVMLTOKind LLVMLTOKind : 2 ;
284290
291+ SwiftAsyncFramePointerKind SwiftAsyncFramePointer : 2 ;
292+
285293 // / Add names to LLVM values.
286294 unsigned HasValueNamesSetting : 1 ;
287295 unsigned ValueNames : 1 ;
@@ -393,7 +401,9 @@ class IRGenOptions {
393401 Playground(false ),
394402 EmitStackPromotionChecks(false ), FunctionSections(false ),
395403 PrintInlineTree(false ), EmbedMode(IRGenEmbedMode::None),
396- LLVMLTOKind(IRGenLLVMLTOKind::None), HasValueNamesSetting(false ),
404+ LLVMLTOKind(IRGenLLVMLTOKind::None),
405+ SwiftAsyncFramePointer(SwiftAsyncFramePointerKind::Always),
406+ HasValueNamesSetting(false ),
397407 ValueNames(false ), EnableReflectionMetadata(true ),
398408 EnableReflectionNames(true ), EnableAnonymousContextMangledNames(false ),
399409 ForcePublicLinkage(false ), LazyInitializeClassMetadata(false ),
0 commit comments