Home | History | Annotate | Download | only in PlaceSafepoints
      1 ; If there's a call in the loop which dominates the backedge, we 
      2 ; don't need a safepoint poll (since the callee must contain a 
      3 ; poll test).
      4 ;; RUN: opt < %s -place-safepoints -S | FileCheck %s
      5 
      6 declare void @foo()
      7 
      8 define void @test1() gc "statepoint-example" {
      9 ; CHECK-LABEL: test1
     10 
     11 entry:
     12 ; CHECK-LABEL: entry
     13 ; CHECK: call void @do_safepoint
     14   br label %loop
     15 
     16 loop:
     17 ; CHECK-LABEL: loop
     18 ; CHECK-NOT: call void @do_safepoint
     19   call void @foo()
     20   br label %loop
     21 }
     22 
     23 ; This function is inlined when inserting a poll.
     24 declare void @do_safepoint()
     25 define void @gc.safepoint_poll() {
     26 ; CHECK-LABEL: gc.safepoint_poll
     27 entry:
     28   call void @do_safepoint()
     29   ret void
     30 }
     31