OSDN Git Service

SjLj based exception handling unwinding support. This patch is nasty, brutish
authorJim Grosbach <grosbach@apple.com>
Tue, 11 Aug 2009 00:09:57 +0000 (00:09 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 11 Aug 2009 00:09:57 +0000 (00:09 +0000)
commit1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3
tree55ef4dc73ff823568dc8543cbb1b4cfa77191b0b
parent3a1f0f6785e27eb8ede455a3583ca8c885d3911e
SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.

The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.

Built on Darwin and verified no llvm-core "make check" regressions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
25 files changed:
docs/ExceptionHandling.html
include/llvm/CodeGen/MachineFunction.h
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/Intrinsics.td
include/llvm/Target/TargetAsmInfo.h
include/llvm/Target/TargetOptions.h
lib/CodeGen/AsmPrinter/DwarfException.cpp
lib/CodeGen/AsmPrinter/DwarfException.h
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/MachineFunction.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
lib/ExecutionEngine/JIT/JITEmitter.cpp
lib/Target/ARM/ARMConstantPoolValue.cpp
lib/Target/ARM/ARMConstantPoolValue.h
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMTargetAsmInfo.cpp
lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
lib/Target/CellSPU/SPUTargetAsmInfo.cpp
lib/Target/PowerPC/PPCTargetAsmInfo.cpp
lib/Target/TargetAsmInfo.cpp
lib/Target/TargetMachine.cpp
lib/Target/X86/X86TargetAsmInfo.cpp
tools/lto/LTOCodeGenerator.cpp