brintos

brintos / llvm-project-archived public Read only

0
0
Text · 770 B · 860aaa3 Raw
30 lines · plain
1; RUN: opt < %s -S -passes=place-safepoints | FileCheck %s2 3declare void @llvm.localescape(...)4 5; Do we insert the entry safepoint after the localescape intrinsic?6define void @parent() gc "statepoint-example" {7; CHECK-LABEL: @parent8entry:9; CHECK-LABEL: entry10; CHECK-NEXT: alloca11; CHECK-NEXT: localescape12; CHECK-NEXT: call void @do_safepoint13  %ptr = alloca i3214  call void (...) @llvm.localescape(ptr %ptr)15  ret void16}17 18; This function is inlined when inserting a poll.  To avoid recursive 19; issues, make sure we don't place safepoints in it.20declare void @do_safepoint()21define void @gc.safepoint_poll() {22; CHECK-LABEL: gc.safepoint_poll23; CHECK-LABEL: entry24; CHECK-NEXT: do_safepoint25; CHECK-NEXT: ret void 26entry:27  call void @do_safepoint()28  ret void29}30