34 lines · plain
1; RUN: opt < %s -passes=rewrite-statepoints-for-gc -S | FileCheck %s2 3declare void @some_call(ptr addrspace(1))4 5declare i32 @dummy_personality_function()6 7define ptr addrspace(1) @test(ptr addrspace(1) %obj, ptr addrspace(1) %obj1)8 gc "statepoint-example"9 personality ptr @dummy_personality_function {10entry:11 invoke void @some_call(ptr addrspace(1) %obj) [ "deopt"() ]12 to label %second_invoke unwind label %exceptional_return13 14second_invoke: ; preds = %entry15 invoke void @some_call(ptr addrspace(1) %obj) [ "deopt"() ]16 to label %normal_return unwind label %exceptional_return17 18normal_return: ; preds = %second_invoke19 ret ptr addrspace(1) %obj20 21; CHECK: exceptional_return1:22; CHECK-NEXT: %lpad2 = landingpad token23 24; CHECK: exceptional_return.split-lp:25; CHECK-NEXT: %lpad.split-lp = landingpad token26 27; CHECK: exceptional_return:28; CHECK-NOT: phi token29 30exceptional_return: ; preds = %second_invoke, %entry31 %lpad = landingpad token cleanup32 ret ptr addrspace(1) %obj133}34