diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86WinEHState.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86WinEHState.cpp | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/llvm/lib/Target/X86/X86WinEHState.cpp b/llvm/lib/Target/X86/X86WinEHState.cpp index ed909c58e9b..a4ae396f826 100644 --- a/llvm/lib/Target/X86/X86WinEHState.cpp +++ b/llvm/lib/Target/X86/X86WinEHState.cpp @@ -149,13 +149,6 @@ void WinEHStatePass::getAnalysisUsage(AnalysisUsage &AU) const { } bool WinEHStatePass::runOnFunction(Function &F) { - // If this is an outlined handler, don't do anything. We'll do state insertion - // for it in the parent. - StringRef WinEHParentName = - F.getFnAttribute("wineh-parent").getValueAsString(); - if (WinEHParentName != F.getName() && !WinEHParentName.empty()) - return false; - // Check the personality. Do nothing if this personality doesn't use funclets. if (!F.hasPersonalityFn()) return false; @@ -169,17 +162,15 @@ bool WinEHStatePass::runOnFunction(Function &F) { // Skip this function if there are no EH pads and we aren't using IR-level // outlining. - if (WinEHParentName.empty()) { - bool HasPads = false; - for (BasicBlock &BB : F) { - if (BB.isEHPad()) { - HasPads = true; - break; - } + bool HasPads = false; + for (BasicBlock &BB : F) { + if (BB.isEHPad()) { + HasPads = true; + break; } - if (!HasPads) - return false; } + if (!HasPads) + return false; // Disable frame pointer elimination in this function. // FIXME: Do the nested handlers need to keep the parent ebp in ebp, or can we |

