From 2626dba9c5515d2e534c117bb16ceb03dd4d0930 Mon Sep 17 00:00:00 2001
From: Bill Wendling \n" if !
-loop-unswitch Unswitch loops -loweratomic Lower atomic intrinsics to non-atomic form
--lowerinvoke Lower invoke and unwind, for unwindless code generators -lowersetjmp Lower Set Jump -lowerswitch Lower SwitchInst's to branches -mem2reg Promote Memory to Register
@@ -1476,35 +1475,6 @@ if (X < 3) {
-memcpyopt MemCpy Optimization
- Lowers setjmp and longjmp to use the LLVM invoke and unwind - instructions as necessary. -
- -- Lowering of longjmp is fairly trivial. We replace the call with a - call to the LLVM library function __llvm_sjljeh_throw_longjmp(). - This unwinds the stack for us calling all of the destructors for - objects allocated on the stack. -
- -- At a setjmp call, the basic block is split and the setjmp - removed. The calls in a function that have a setjmp are converted to - invoke where the except part checks to see if it's a longjmp - exception and, if so, if it's handled in the function. If it is, then it gets - the value returned by the longjmp and goes to where the basic block - was split. invoke instructions are handled in a similar fashion with - the original except block being executed if it isn't a longjmp - except that is handled by that function. -
-If you're already an LLVM user or developer with out-of-tree changes based -on LLVM 2.9, this section lists some "gotchas" that you may run into upgrading -from the previous release.
+If you're already an LLVM user or developer with out-of-tree changes based on + LLVM 2.9, this section lists some "gotchas" that you may run into upgrading + from the previous release.
LowerSetJmp
wasn't used effectively by any of the
+ targets and was removed.LLVMAddLowerSetJmpPass
function from the C API was removed
+ because the LowerSetJmp
pass was removed.