summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2014-01-29 11:50:56 +0000
committerRenato Golin <renato.golin@linaro.org>2014-01-29 11:50:56 +0000
commit3fca788967bb3fd37675bfb177d38ff8e8e2c920 (patch)
treec785080f963fc374c97b5f65719c4d0cc3899487 /lib/CodeGen
parentb04ddad8eacf727a79524b53d350e9c1dd758084 (diff)
downloadllvm-3fca788967bb3fd37675bfb177d38ff8e8e2c920.tar.gz
llvm-3fca788967bb3fd37675bfb177d38ff8e8e2c920.tar.bz2
llvm-3fca788967bb3fd37675bfb177d38ff8e8e2c920.tar.xz
Enable EHABI by default
After all hard work to implement the EHABI and with the test-suite passing, it's time to turn it on by default and allow users to disable it as a work-around while we fix the eventual bugs that show up. This commit also remove the -arm-enable-ehabi-descriptors, since we want the tables to be printed every time the EHABI is turned on for non-Darwin ARM targets. Although MCJIT EHABI is not working yet (needs linking with the right libraries), this commit also fixes some relocations on MCJIT regarding the EH tables/lib calls, and update some tests to avoid using EH tables when none are needed. The EH tests in the test-suite that were previously disabled on ARM now pass with these changes, so a follow-up commit on the test-suite will re-enable them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200388 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/AsmPrinter/ARMException.cpp36
1 files changed, 14 insertions, 22 deletions
diff --git a/lib/CodeGen/AsmPrinter/ARMException.cpp b/lib/CodeGen/AsmPrinter/ARMException.cpp
index a33b549faa..6e79bef8d0 100644
--- a/lib/CodeGen/AsmPrinter/ARMException.cpp
+++ b/lib/CodeGen/AsmPrinter/ARMException.cpp
@@ -36,12 +36,6 @@
#include "llvm/Target/TargetRegisterInfo.h"
using namespace llvm;
-static cl::opt<bool>
-EnableARMEHABIDescriptors("arm-enable-ehabi-descriptors", cl::Hidden,
- cl::desc("Generate ARM EHABI tables with unwinding descriptors"),
- cl::init(false));
-
-
ARMException::ARMException(AsmPrinter *A)
: DwarfException(A) {}
@@ -74,25 +68,23 @@ void ARMException::endFunction(const MachineFunction *) {
Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("eh_func_end",
Asm->getFunctionNumber()));
- if (EnableARMEHABIDescriptors) {
- // Map all labels and get rid of any dead landing pads.
- MMI->TidyLandingPads();
+ // Map all labels and get rid of any dead landing pads.
+ MMI->TidyLandingPads();
- if (!MMI->getLandingPads().empty()) {
- // Emit references to personality.
- if (const Function * Personality =
- MMI->getPersonalities()[MMI->getPersonalityIndex()]) {
- MCSymbol *PerSym = Asm->getSymbol(Personality);
- Asm->OutStreamer.EmitSymbolAttribute(PerSym, MCSA_Global);
- ATS.emitPersonality(PerSym);
- }
+ if (!MMI->getLandingPads().empty()) {
+ // Emit references to personality.
+ if (const Function * Personality =
+ MMI->getPersonalities()[MMI->getPersonalityIndex()]) {
+ MCSymbol *PerSym = Asm->getSymbol(Personality);
+ Asm->OutStreamer.EmitSymbolAttribute(PerSym, MCSA_Global);
+ ATS.emitPersonality(PerSym);
+ }
- // Emit .handlerdata directive.
- ATS.emitHandlerData();
+ // Emit .handlerdata directive.
+ ATS.emitHandlerData();
- // Emit actual exception table
- EmitExceptionTable();
- }
+ // Emit actual exception table
+ EmitExceptionTable();
}
}