OSDN Git Service

[CodeGen] Force emission of personality directive if explicitly specified
authorKeno Fischer <kfischer@college.harvard.edu>
Tue, 14 Jul 2015 19:22:51 +0000 (19:22 +0000)
committerKeno Fischer <kfischer@college.harvard.edu>
Tue, 14 Jul 2015 19:22:51 +0000 (19:22 +0000)
commit890c16626f63ca0978b705e173ed9e5a0068d418
treed0c2aab02e44e2ddf9ffd8174df14ee4b8b1d754
parent77906b996433e27dc63cb7e2a0b1ca86678d4932
[CodeGen] Force emission of personality directive if explicitly specified

Summary:
Before this change, personality directives were not emitted
if there was no invoke left in the function (of course until
recently this also meant that we couldn't know what
the personality actually was). This patch forces personality directives
to still be emitted, unless it is known to be a noop in the absence of
invokes, or the user explicitly specified `nounwind` (and not
`uwtable`) on the function.

Reviewers: majnemer, rnk

Subscribers: rnk, llvm-commits

Differential Revision: http://reviews.llvm.org/D10884

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242185 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/LibCallSemantics.h
include/llvm/CodeGen/MachineModuleInfo.h
lib/CodeGen/AsmPrinter/ARMException.cpp
lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
lib/CodeGen/AsmPrinter/EHStreamer.cpp
lib/CodeGen/AsmPrinter/WinException.cpp
lib/CodeGen/MachineModuleInfo.cpp
test/CodeGen/X86/eh-nolandingpads.ll [new file with mode: 0644]