diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/testdata/defer-cortex-m-qemu.ll | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/compiler/testdata/defer-cortex-m-qemu.ll b/compiler/testdata/defer-cortex-m-qemu.ll index 4f1fa1dd8..32697ccd5 100644 --- a/compiler/testdata/defer-cortex-m-qemu.ll +++ b/compiler/testdata/defer-cortex-m-qemu.ll @@ -37,9 +37,16 @@ entry: 1: ; preds = %entry call void @main.external(ptr undef) #4 + br label %rundefers.block + +rundefers.after: ; preds = %rundefers.end + call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 + ret void + +rundefers.block: ; preds = %1 br label %rundefers.loophead -rundefers.loophead: ; preds = %3, %1 +rundefers.loophead: ; preds = %3, %rundefers.block %2 = load ptr, ptr %deferPtr, align 4 %stackIsNil = icmp eq ptr %2, null br i1 %stackIsNil, label %rundefers.end, label %rundefers.loop @@ -66,8 +73,7 @@ rundefers.default: ; preds = %rundefers.loop unreachable rundefers.end: ; preds = %rundefers.loophead - call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 - ret void + br label %rundefers.after recover: ; preds = %rundefers.end3 call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 @@ -111,6 +117,8 @@ declare ptr @llvm.stacksave() #3 declare void @runtime.setupDeferFrame(ptr dereferenceable_or_null(24), ptr, ptr) #2 +declare void @runtime.destroyDeferFrame(ptr dereferenceable_or_null(24), ptr) #2 + ; Function Attrs: nounwind define internal void @"main.deferSimple$1"(ptr %context) unnamed_addr #1 { entry: @@ -118,8 +126,6 @@ entry: ret void } -declare void @runtime.destroyDeferFrame(ptr dereferenceable_or_null(24), ptr) #2 - declare void @runtime.printint32(i32, ptr) #2 ; Function Attrs: nounwind @@ -146,9 +152,16 @@ entry: 1: ; preds = %entry call void @main.external(ptr undef) #4 + br label %rundefers.block + +rundefers.after: ; preds = %rundefers.end + call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 + ret void + +rundefers.block: ; preds = %1 br label %rundefers.loophead -rundefers.loophead: ; preds = %4, %3, %1 +rundefers.loophead: ; preds = %4, %3, %rundefers.block %2 = load ptr, ptr %deferPtr, align 4 %stackIsNil = icmp eq ptr %2, null br i1 %stackIsNil, label %rundefers.end, label %rundefers.loop @@ -185,8 +198,7 @@ rundefers.default: ; preds = %rundefers.loop unreachable rundefers.end: ; preds = %rundefers.loophead - call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 - ret void + br label %rundefers.after recover: ; preds = %rundefers.end7 call void @runtime.destroyDeferFrame(ptr nonnull %deferframe.buf, ptr undef) #4 |