Don't Place Entry Safepoints Before the llvm.frameescape() Intrinsic
authorPhilip Reames <listmail@philipreames.com>
Sun, 26 Apr 2015 19:41:23 +0000 (19:41 +0000)
committerPhilip Reames <listmail@philipreames.com>
Sun, 26 Apr 2015 19:41:23 +0000 (19:41 +0000)
commit83a049f2a65d6422049e094ad75cea2301b4f4b3
tree6aae47ad6345b2bbbf4f081a21811fcacc2b7137
parentad82d266697017c7daec139348a13c17cdb9eb29
Don't Place Entry Safepoints Before the llvm.frameescape() Intrinsic

llvm.frameescape() intrinsic is not a real call. The intrinsic can only exist in the entry block. Inserting a gc.statepoint() before llvm.frameescape() may split the entry block, and push the intrinsic out of the entry block.

Patch by: Swaroop.Sridhar@microsoft.com
Differential Revision: http://reviews.llvm.org/D8910

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235820 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/PlaceSafepoints.cpp
test/Transforms/PlaceSafepoints/statepoint-frameescape.ll [new file with mode: 0644]