From 13a7121858238bc3490b27206a609bf8a2ce1f21 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Mon, 17 Oct 2011 22:26:23 +0000 Subject: Now Igor, throw the switch...give my creation life! Use the custom inserter for the ARM setjmp intrinsics. Instead of creating the SjLj dispatch table in IR, where it frequently violates serveral assumptions -- in particular assumptions made by the landingpad instruction about what can branch to a landing pad and what cannot. Performing this in the back-end allows us to violate these assumptions without the IR getting angry at us. It also allows us to perform a small optimization. We can shove the address of the dispatch's basic block into the function context and not have to add code around the setjmp to check for the return value and jump to the dispatch. Neat, huh? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142294 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SjLjEHPrepare.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/CodeGen') diff --git a/lib/CodeGen/SjLjEHPrepare.cpp b/lib/CodeGen/SjLjEHPrepare.cpp index ded2459..3ccf39b 100644 --- a/lib/CodeGen/SjLjEHPrepare.cpp +++ b/lib/CodeGen/SjLjEHPrepare.cpp @@ -36,6 +36,7 @@ using namespace llvm; static cl::opt DisableOldSjLjEH("disable-old-sjlj-eh", cl::Hidden, + cl::init(true), cl::desc("Disable the old SjLj EH preparation pass")); STATISTIC(NumInvokes, "Number of invokes replaced"); -- cgit v1.1