[StatepointLowering] Remove distinction between call and invoke safepoints
authorIgor Laevsky <igmyrj@gmail.com>
Wed, 4 Nov 2015 01:16:10 +0000 (01:16 +0000)
committerIgor Laevsky <igmyrj@gmail.com>
Wed, 4 Nov 2015 01:16:10 +0000 (01:16 +0000)
commit7e6636cb71f619b2ebf8b81c688933edf56beebf
treeb2f5561fd4aafdde950b192be9061e9bf605fb3f
parentfa3207e31b58aded7dc41b83467b7ac4cb0f0ce8
[StatepointLowering] Remove distinction between call and invoke safepoints

There is no point in having invoke safepoints handled differently than the
call safepoints. All relevant decisions could be made by looking at whether
or not gc.result and gc.relocate lay in a same basic block. This change will
 allow to lower call safepoints with relocates and results in a different
basic blocks. See test case for example.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252028 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/StatepointLowering.cpp
test/CodeGen/X86/statepoint-call-lowering.ll