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)
commit2e78fa49a82c496a0701b996bacf2868204bef64
treebbb939b34385b778987f2016486f7609de38d983
parentce216063acb78375a07323468730a7de33b4b5f9
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

llvm-svn: 235820
llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
llvm/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll [new file with mode: 0644]