brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 265491f Raw
67 lines · plain
1; RUN: opt -S -passes=inline -inline-threshold=100 -inline-cold-callsite-threshold=100 < %s | FileCheck %s2; RUN: opt -S -passes='cgscc(inline)' -inline-threshold=100 -inline-cold-callsite-threshold=100 < %s | FileCheck %s3target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"4target triple = "i686-pc-windows-msvc18.0.0"5 6declare void @g(i32)7 8define void @f() personality ptr @__CxxFrameHandler3 {9entry:10  invoke void @g(i32 0)11          to label %invoke.cont unwind label %cs.bb12 13invoke.cont:14  ret void15 16cs.bb:17  %cs = catchswitch within none [label %cp.bb] unwind label %cleanup.bb18 19cp.bb:20  %cpouter1 = catchpad within %cs [ptr null, i32 0, ptr null]21  call void @dtor() #1 [ "funclet"(token %cpouter1) ]22  catchret from %cpouter1 to label %invoke.cont23 24cleanup.bb:25  %cpouter2 = cleanuppad within none []26  call void @g(i32 1) [ "funclet"(token %cpouter2) ]27  cleanupret from %cpouter2 unwind to caller28}29 30declare i32 @__CxxFrameHandler3(...)31 32; Function Attrs: nounwind33define internal void @dtor() #1 personality ptr @__CxxFrameHandler3 {34entry:35  invoke void @g(i32 2)36          to label %invoke.cont unwind label %ehcleanup137 38invoke.cont:39  ret void40 41ehcleanup1:42  %cpinner1 = cleanuppad within none []43  invoke void @g(i32 3) [ "funclet" (token %cpinner1) ]44          to label %done unwind label %ehcleanup245done:46  unreachable47 48ehcleanup2:49  %cpinner2 = cleanuppad within %cpinner1 []50  call void @g(i32 4) [ "funclet" (token %cpinner2) ]51  cleanupret from %cpinner2 unwind to caller52}53 54; CHECK-LABEL: define void @f(55 56; CHECK:      %[[cs:.*]] = catchswitch within none57 58; CHECK:      %[[cpouter1:.*]] = catchpad within %[[cs]]59 60; CHECK:      %[[cpinner1:.*]] = cleanuppad within %[[cpouter1]]61 62; CHECK:      %[[cpinner2:.*]] = cleanuppad within %[[cpinner1]]63; CHECK-NEXT: call void @g(i32 4) #0 [ "funclet"(token %[[cpinner2]]) ]64; CHECK-NEXT: unreachable65 66attributes #1 = { nounwind }67