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)
commit85f7f727d38a39defb4983e145cac0081813e647
tree0efa6747a68245b69bd8fa01aef2f5882f667187
parent3b67c8d0f7c6a15d802c6db377af7a57e39d67ba
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

llvm-svn: 231800
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/test/CodeGen/X86/statepoint-invoke.ll [new file with mode: 0644]