Teach lowering to correctly handle invoke statepoint and gc results tied to them...
authorIgor Laevsky <igmyrj@gmail.com>
Tue, 10 Mar 2015 16:26:48 +0000 (16:26 +0000)
committerIgor Laevsky <igmyrj@gmail.com>
Tue, 10 Mar 2015 16:26:48 +0000 (16:26 +0000)
commit68beb2a9ec029846ddaeea1b5fe762d81267259f
treeeaceae00ce99df875ce3580e8c7df82dea671e92
parente891f49ad55fdca73093423b510ed4fb1ae75be6
Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints.
Also it extracts getCopyFromRegs helper function in SelectionDAGBuilder as we need to be able to customize type of the register exported from basic block during lowering of the gc.result.
(Resubmitting this change after not being able to reproduce buildbot failure)

Differential Revision: http://reviews.llvm.org/D7760

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231800 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
lib/CodeGen/SelectionDAG/StatepointLowering.cpp
test/CodeGen/X86/statepoint-invoke.ll [new file with mode: 0644]