Page MenuHomePhabricator

SwiftAsync: use runtime-provided flag for extended frame if back-deploying
ClosedPublic

Authored by t.p.northover on Sep 3 2021, 2:50 AM.

Details

Summary

When back-deploying Swift async code we can't always toggle the flag showing an extended frame is present because it will confuse unwinders on systems released before this feature. So in cases where the code might run there, we or in a mask provided by the runtime (as an absolute symbol) telling us whether the unwinders can cope.

When deploying only for newer OSs, we can still hard-code the bit-set for greater efficiency.

Diff Detail

Unit TestsFailed

TimeTest
20 msx64 windows > Clang.CodeGen/aarch64-sve-intrinsics::acle_sve_st1b.c
shell parser error on: ": 'RUN: at line 3'; c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\clang.exe -cc1 -internal-isystem c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\lib\\clang\\14.0.0\\include -nostdsysteminc -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -o - -emit-llvm C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1b.c |& c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\filecheck.exe C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1b.c"
10 msx64 windows > Clang.CodeGen/aarch64-sve-intrinsics::acle_sve_st1h.c
shell parser error on: ": 'RUN: at line 3'; c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\clang.exe -cc1 -internal-isystem c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\lib\\clang\\14.0.0\\include -nostdsysteminc -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -o - -emit-llvm C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1h.c |& c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\filecheck.exe C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1h.c"
0 msx64 windows > Clang.CodeGen/aarch64-sve-intrinsics::acle_sve_st1w.c
shell parser error on: ": 'RUN: at line 3'; c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\clang.exe -cc1 -internal-isystem c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\lib\\clang\\14.0.0\\include -nostdsysteminc -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -o - -emit-llvm C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1w.c |& c:\\ws\\w3\\llvm-project\\premerge-checks\\build\\bin\\filecheck.exe C:\\ws\\w3\\llvm-project\\premerge-checks\\clang\\test\\CodeGen\\aarch64-sve-intrinsics\\acle_sve_st1w.c"