llvm-6502/lib
Jakob Stoklund Olesen 918b7c82f8 Simplify landing pad lowering.
Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering
landing pad arguments. These nodes were previously legalized into
CopyFromReg nodes, but that never worked properly because the
CopyFromReg node weren't guaranteed to be  scheduled at the top of the
basic block.

This meant the exception pointer and selector registers could be
clobbered before being copied to a virtual register.

This patch copies the two physical registers to virtual registers at
the beginning of the basic block, and lowers the landingpad instruction
directly to two CopyFromReg nodes reading the *virtual* registers. This
is safe because virtual registers don't get clobbered.

A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION
nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185617 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-04 04:53:45 +00:00
..
Analysis Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
AsmParser
Bitcode
CodeGen Simplify landing pad lowering. 2013-07-04 04:53:45 +00:00
DebugInfo
ExecutionEngine Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
IR Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
IRReader
Linker
MC [PowerPC] Remove VK_PPC_TLSGD and VK_PPC_TLSLD 2013-07-02 21:29:06 +00:00
Object Add support for gnu archives with a string table and no symtab. 2013-07-03 15:57:14 +00:00
Option
Support Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
TableGen
Target Add a space between closing template '>' to unbreak build. 2013-07-04 01:43:17 +00:00
Transforms Tabs to spaces. No functionality change. 2013-07-04 03:51:53 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile