1; RUN: opt < %s -S -rewrite-statepoints-for-gc | FileCheck %s 2 3declare void @foo() "gc-leaf-function" 4declare void @bar() 5 6; Calls of functions with the "gc-leaf-function" attribute shouldn't be turned 7; into a safepoint. An entry safepoint should get inserted, though. 8define void @test_leaf_function() gc "statepoint-example" { 9; CHECK-LABEL: test_leaf_function 10; CHECK-NOT: gc.statepoint 11; CHECK-NOT: gc.result 12entry: 13 call void @foo() 14 ret void 15} 16 17define void @test_leaf_function_call() gc "statepoint-example" { 18; CHECK-LABEL: test_leaf_function_call 19; CHECK-NOT: gc.statepoint 20; CHECK-NOT: gc.result 21entry: 22 call void @bar() "gc-leaf-function" 23 ret void 24} 25 26; This function is inlined when inserting a poll. 27declare void @do_safepoint() 28define void @gc.safepoint_poll() { 29; CHECK-LABEL: gc.safepoint_poll 30entry: 31 call void @do_safepoint() 32 ret void 33} 34