summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2017-10-12 18:20:35 +0000
committerReid Kleckner <rnk@google.com>2017-10-12 18:20:35 +0000
commit1a7e3878494efbf8dbc1c0ead042a8273e5b8229 (patch)
tree98f4ea82ad00c53cd238153670c7928ca7319848 /llvm/lib/Target/X86/X86FrameLowering.cpp
parent754a1a8a6f6ed7d869188019db7f484dc60342aa (diff)
downloadbcm5719-llvm-1a7e3878494efbf8dbc1c0ead042a8273e5b8229.tar.gz
bcm5719-llvm-1a7e3878494efbf8dbc1c0ead042a8273e5b8229.zip
[codeview] Don't emit FPO data in funclet prologues
Attempt 3 to work around bugs in FPO data with funclets. llvm-svn: 315600
Diffstat (limited to 'llvm/lib/Target/X86/X86FrameLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FrameLowering.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp
index ae3662364ec..988f2967401 100644
--- a/llvm/lib/Target/X86/X86FrameLowering.cpp
+++ b/llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -951,8 +951,9 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
bool IsWin64CC = STI.isCallingConvWin64(Fn->getCallingConv());
bool IsWin64Prologue = MF.getTarget().getMCAsmInfo()->usesWindowsCFI();
bool NeedsWin64CFI = IsWin64Prologue && Fn->needsUnwindTableEntry();
- bool NeedsWinFPO = STI.isTargetWin32() && MMI.getModule()->getCodeViewFlag();
- NeedsWinFPO &= !MF.hasEHFunclets(); // FIXME
+ // FIXME: Emit FPO data for EH funclets.
+ bool NeedsWinFPO =
+ !IsFunclet && STI.isTargetWin32() && MMI.getModule()->getCodeViewFlag();
bool NeedsWinCFI = NeedsWin64CFI || NeedsWinFPO;
bool NeedsDwarfCFI =
!IsWin64Prologue && (MMI.hasDebugInfo() || Fn->needsUnwindTableEntry());
OpenPOWER on IntegriCloud