diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp index c3d64f5a0a96..957d7bc79b18 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp @@ -196,12 +196,14 @@ bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo( const MachineFunction &MF) const { if (!NeedsAsyncDwarfUnwindInfo) { const Function &F = MF.getFunction(); + const AArch64FunctionInfo *AFI = MF.getInfo<AArch64FunctionInfo>(); // The check got "minsize" is because epilogue unwind info is not emitted // (yet) for homogeneous epilogues, outlined functions, and functions // outlined from. - NeedsAsyncDwarfUnwindInfo = needsDwarfUnwindInfo(MF) && - F.getUWTableKind() == UWTableKind::Async && - !F.hasMinSize(); + NeedsAsyncDwarfUnwindInfo = + needsDwarfUnwindInfo(MF) && + ((F.getUWTableKind() == UWTableKind::Async && !F.hasMinSize()) || + AFI->hasStreamingModeChanges()); } return *NeedsAsyncDwarfUnwindInfo; } |
