1*1ceb79e2SJan Dupej; RUN: opt < %s -S -passes=place-safepoints | FileCheck %s 2fe755af3SPhilip Reames 3fe755af3SPhilip Reamesdeclare void @llvm.localescape(...) 4fe755af3SPhilip Reames 5fe755af3SPhilip Reames; Do we insert the entry safepoint after the localescape intrinsic? 6fe755af3SPhilip Reamesdefine void @parent() gc "statepoint-example" { 7fe755af3SPhilip Reames; CHECK-LABEL: @parent 8fe755af3SPhilip Reamesentry: 9fe755af3SPhilip Reames; CHECK-LABEL: entry 10fe755af3SPhilip Reames; CHECK-NEXT: alloca 11fe755af3SPhilip Reames; CHECK-NEXT: localescape 12fe755af3SPhilip Reames; CHECK-NEXT: call void @do_safepoint 13fe755af3SPhilip Reames %ptr = alloca i32 145c6453ebSMatt Arsenault call void (...) @llvm.localescape(ptr %ptr) 15fe755af3SPhilip Reames ret void 16fe755af3SPhilip Reames} 17fe755af3SPhilip Reames 18fe755af3SPhilip Reames; This function is inlined when inserting a poll. To avoid recursive 19fe755af3SPhilip Reames; issues, make sure we don't place safepoints in it. 20fe755af3SPhilip Reamesdeclare void @do_safepoint() 21fe755af3SPhilip Reamesdefine void @gc.safepoint_poll() { 22fe755af3SPhilip Reames; CHECK-LABEL: gc.safepoint_poll 23fe755af3SPhilip Reames; CHECK-LABEL: entry 24fe755af3SPhilip Reames; CHECK-NEXT: do_safepoint 25fe755af3SPhilip Reames; CHECK-NEXT: ret void 26fe755af3SPhilip Reamesentry: 27fe755af3SPhilip Reames call void @do_safepoint() 28fe755af3SPhilip Reames ret void 29fe755af3SPhilip Reames} 30