@@ -349,14 +349,14 @@ bb3(%reborrow1 : @guaranteed $C, %reborrow2 : @guaranteed $D):
349
349
// CHECK-NEXT: Inner scope: %{{.*}} = argument of bb1 : $D
350
350
// CHECK-NEXT: bb0: LiveOut
351
351
// CHECK-NEXT: bb1: LiveWithin
352
+ // CHECK-NEXT: regular user: %{{.*}} = borrowed %{{.*}} : $D from (%1 : $C)
352
353
// CHECK-NEXT: lifetime-ending user: end_borrow %{{.*}} : $C
353
354
// CHECK-NEXT: regular user: %{{.*}} = unchecked_ref_cast %{{.*}} : $C to $D
354
- // CHECK-NEXT: regular user: end_borrow %{{.*}} : $D
355
355
// CHECK-NEXT: regular user: br bb1(%{{.*}} : $D)
356
356
// CHECK-NEXT: Complete liveness
357
357
// CHECK-NEXT: Unenclosed phis {
358
358
// CHECK-NEXT: }
359
- // CHECK-NEXT: last user: end_borrow %1 : $C // id: %7
359
+ // CHECK-NEXT: last user: end_borrow %1 : $C
360
360
// CHECK-NEXT: testInteriorDominatedReborrow: interior-liveness with: %borrow1
361
361
362
362
// CHECK-LABEL: testInteriorDominatedReborrow: interior_liveness_swift with: %borrow1
@@ -365,6 +365,7 @@ bb3(%reborrow1 : @guaranteed $C, %reborrow2 : @guaranteed $D):
365
365
// CHECK-NEXT: ends: end_borrow %{{.*}} : $C
366
366
// CHECK-NEXT: exits:
367
367
// CHECK-NEXT: interiors: end_borrow %{{.*}} : $D
368
+ // CHECK-NEXT: %{{.*}} = borrowed %{{.*}} : $D from (%1 : $C)
368
369
// CHECK-NEXT: br bb1(%{{.*}} : $D)
369
370
// CHECK-NEXT: %{{.*}} = unchecked_ref_cast %{{.*}} : $C to $D
370
371
// CHECK-NEXT: Unenclosed phis {
@@ -512,9 +513,10 @@ bb0(%0 : @guaranteed $D, %1 : @owned $C):
512
513
// CHECK-NEXT: begin: cond_br undef, bb1, bb2
513
514
// CHECK-NEXT: ends: %{{.*}} = load [copy] %{{.*}} : $*C
514
515
// CHECK-NEXT: exits:
515
- // CHECK-NEXT: interiors: br bb3(%{{.*}} : $D)
516
+ // CHECK-NEXT: interiors: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
517
+ // CHECK-NEXT: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $C)
518
+ // CHECK-NEXT: br bb3(%{{.*}} : $D)
516
519
// CHECK-NEXT: %{{.*}} = unchecked_ref_cast %0 : $C to $D
517
- // CHECK-NEXT: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
518
520
// CHECK-NEXT: br bb3(%{{.*}} : $D)
519
521
// CHECK-NEXT: %{{.*}} = unchecked_ref_cast %0 : $C to $D
520
522
// CHECK-NEXT: Unenclosed phis {
@@ -591,15 +593,16 @@ bb3(%reborrow : @guaranteed $C, %phi : @guaranteed $D):
591
593
// CHECK: Complete liveness
592
594
// CHECK: Unenclosed phis {
593
595
// CHECK-NEXT: }
594
- // CHECK-NEXT: last user: end_borrow
596
+ // CHECK-NEXT: last user: %{{.*}} = borrowed %{{.*}} : $C from (%0 : $C)
595
597
// CHECK-NEXT: testInnerDominatedReborrow: interior-liveness with: @argument[0]
596
598
597
599
// CHECK-LABEL: testInnerDominatedReborrow: interior_liveness_swift with: @argument[0]
598
600
// CHECK: Interior liveness: %0 = argument of bb0 : $C
599
601
// CHECK-NEXT: begin: %{{.*}} = begin_borrow %0 : $C
600
602
// CHECK-NEXT: ends: end_borrow %{{.*}} : $C
601
603
// CHECK-NEXT: exits:
602
- // CHECK-NEXT: interiors: br bb1(%{{.*}} : $C)
604
+ // CHECK-NEXT: interiors: %{{.*}} = borrowed %{{.*}} : $C from (%0 : $C)
605
+ // CHECK-NEXT: br bb1(%{{.*}} : $C)
603
606
// CHECK-NEXT: Unenclosed phis {
604
607
// CHECK-NEXT: }
605
608
// CHECK-NEXT: last user: end_borrow %{{.*}} : $C
@@ -632,6 +635,7 @@ bb1(%reborrow : @guaranteed $C):
632
635
// CHECK-NEXT: ends: destroy_value %{{.*}} : $C
633
636
// CHECK-NEXT: exits:
634
637
// CHECK-NEXT: interiors: end_borrow %{{.*}} : $C
638
+ // CHECK-NEXT: %{{.*}} = borrowed %{{.*}} : $C from (%2 : $C, %1 : $C)
635
639
// CHECK-NEXT: br bb3(%{{.*}} : $C)
636
640
// CHECK-NEXT: Unenclosed phis {
637
641
// CHECK-NEXT: }
@@ -709,20 +713,23 @@ bb3(%outer : @guaranteed $D, %inner : @guaranteed $D):
709
713
// CHECK: Interior liveness: [[DEF:%.*]] = argument of bb3 : $D
710
714
// CHECK: Inner scope: %{{.*}} = argument of bb3 : $D
711
715
// CHECK: Inner scope: %{{.*}} = argument of bb4 : $D
712
- // CHECK: regular user: end_borrow
713
- // CHECK-NEXT: regular user: br bb4(
716
+ // CHECK: regular user: br bb4(
717
+ // CHECK-NEXT: regular user: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
718
+ // CHECK-NEXT: regular user: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
714
719
// CHECK-NEXT: Complete liveness
715
720
// CHECK-NEXT: Unenclosed phis {
716
721
// CHECK-NEXT: }
717
- // CHECK-NEXT: last user: end_borrow
722
+ // CHECK-NEXT: last user: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
718
723
// CHECK-NEXT: testInnerAdjacentReborrow1: interior-liveness with: %outer3
719
724
720
725
// CHECK-LABEL: testInnerAdjacentReborrow1: interior_liveness_swift with: %outer3
721
726
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $D
722
- // CHECK-NEXT: begin: br bb4(
727
+ // CHECK-NEXT: begin: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
723
728
// CHECK-NEXT: ends: end_borrow
724
729
// CHECK-NEXT: exits:
725
- // CHECK-NEXT: interiors: br bb4(
730
+ // CHECK-NEXT: interiors: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
731
+ // CHECK-NEXT: br bb4(
732
+ // CHECK-NEXT: %{{.*}} = borrowed %{{.*}} : $D from (%0 : $D, %{{.*}} : $D)
726
733
// CHECK-NEXT: Unenclosed phis {
727
734
// CHECK-NEXT: }
728
735
// CHECK-NEXT: last user: end_borrow
@@ -758,20 +765,23 @@ bb4(%inner4 : @guaranteed $D):
758
765
// CHECK: Interior liveness: [[DEF:%.*]] = argument of bb3 : $D
759
766
// CHECK: Inner scope: %{{.*}} = argument of bb3 : $D
760
767
// CHECK: Inner scope: %{{.*}} = argument of bb4 : $D
761
- // CHECK: regular user: end_borrow
762
- // CHECK-NEXT: regular user: br bb4(
768
+ // CHECK: regular user: br bb4(
769
+ // CHECK-NEXT: regular user: {{.*}} borrowed {{.*}} from
770
+ // CHECK-NEXT: regular user: {{.*}} borrowed {{.*}} from
763
771
// CHECK-NEXT: Complete liveness
764
772
// CHECK-NEXT: Unenclosed phis {
765
773
// CHECK-NEXT: }
766
- // CHECK-NEXT: last user: end_borrow
774
+ // CHECK-NEXT: last user: {{.*}} borrowed {{.*}} from
767
775
// CHECK-NEXT: testInnerAdjacentReborrow2: interior-liveness with: %outer3
768
776
769
777
// CHECK-LABEL: testInnerAdjacentReborrow2: interior_liveness_swift with: %outer3
770
778
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $D
771
- // CHECK-NEXT: begin: br bb4(% {{.*}} : $D)
779
+ // CHECK-NEXT: begin: {{.*}} borrowed {{.*}} from
772
780
// CHECK-NEXT: ends: end_borrow %{{.*}} : $D
773
781
// CHECK-NEXT: exits:
774
- // CHECK-NEXT: interiors: br bb4(%{{.*}} : $D)
782
+ // CHECK-NEXT: interiors: {{.*}} borrowed {{.*}} from
783
+ // CHECK-NEXT: br bb4(%{{.*}} : $D)
784
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
775
785
// CHECK-NEXT: Unenclosed phis {
776
786
// CHECK-NEXT: }
777
787
// CHECK-NEXT: last user: end_borrow %{{.*}} : $D
@@ -815,7 +825,7 @@ bb4(%inner4 : @guaranteed $D):
815
825
816
826
// CHECK-LABEL: testInnerNonAdjacentReborrow: interior_liveness_swift with: %outer3
817
827
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $D
818
- // CHECK-NEXT: begin: br bb4(% {{.*}} : $D)
828
+ // CHECK-NEXT: begin: {{.*}} borrowed {{.*}} from
819
829
// CHECK-NEXT: ends:
820
830
// CHECK-NEXT: exits:
821
831
// CHECK-NEXT: interiors:
@@ -860,11 +870,14 @@ bb4(%inner4 : @guaranteed $D):
860
870
861
871
// CHECK-LABEL: testInnerAdjacentPhi1: interior_liveness_swift with: %inner3
862
872
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $C
863
- // CHECK-NEXT: begin: br bb4(% {{.*}} : $D)
873
+ // CHECK-NEXT: begin: {{.*}} borrowed {{.*}} from
864
874
// CHECK-NEXT: ends: %{{.*}} = load [copy] %{{.*}} : $*C
865
875
// CHECK-NEXT: exits:
866
- // CHECK-NEXT: interiors: br bb4(%{{.*}} : $D)
867
- // CHECK-NEXT: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
876
+ // CHECK-NEXT: interiors: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
877
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
878
+ // CHECK-NEXT: br bb4(%{{.*}} : $D)
879
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
880
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
868
881
// CHECK-NEXT: Unenclosed phis {
869
882
// CHECK-NEXT: }
870
883
// CHECK-NEXT: last user: %{{.*}} = load [copy] %{{.*}} : $*C
@@ -907,11 +920,14 @@ bb4(%phi4 : @guaranteed $D):
907
920
908
921
// CHECK-LABEL: testInnerAdjacentPhi2: interior_liveness_swift with: %inner3
909
922
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $C
910
- // CHECK-NEXT: begin: br bb4(% {{.*}} : $D)
923
+ // CHECK-NEXT: begin: {{.*}} borrowed {{.*}} from
911
924
// CHECK-NEXT: ends: %{{.*}} = load [copy] %{{.*}} : $*C
912
925
// CHECK-NEXT: exits:
913
- // CHECK-NEXT: interiors: br bb4(%{{.*}} : $D)
914
- // CHECK-NEXT: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
926
+ // CHECK-NEXT: interiors: %{{.*}} = ref_element_addr %{{.*}} : $D, #D.object
927
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
928
+ // CHECK-NEXT: br bb4(%{{.*}} : $D)
929
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
930
+ // CHECK-NEXT: {{.*}} borrowed {{.*}} from
915
931
// CHECK-NEXT: Unenclosed phis {
916
932
// CHECK-NEXT: }
917
933
// CHECK-NEXT: last user: %{{.*}} = load [copy] %{{.*}} : $*C
@@ -949,18 +965,18 @@ bb4(%phi4 : @guaranteed $D):
949
965
// CHECK: Complete liveness
950
966
// CHECK: Unenclosed phis {
951
967
// CHECK-NEXT: }
952
- // CHECK-NEXT: dead def: [[DEF]] = argument of bb3 : $C
968
+ // CHECK-NEXT: last user: {{.*}} borrowed {{.*}} from
953
969
// CHECK-NEXT: testInnerNonAdjacentPhi: interior-liveness with: %inner3
954
970
955
971
// CHECK-LABEL: testInnerNonAdjacentPhi: interior_liveness_swift with: %inner3
956
972
// CHECK: Interior liveness: %{{.*}} = argument of bb3 : $C
957
- // CHECK-NEXT: begin: br bb4(% {{.*}} : $D)
973
+ // CHECK-NEXT: begin: {{.*}} borrowed {{.*}} from
958
974
// CHECK-NEXT: ends:
959
975
// CHECK-NEXT: exits:
960
976
// CHECK-NEXT: interiors:
961
977
// CHECK-NEXT: Unenclosed phis {
962
978
// CHECK-NEXT: }
963
- // CHECK-NEXT: dead def: % {{.*}} = argument of bb3 : $C
979
+ // CHECK-NEXT: last user: {{.*}} borrowed {{.*}} from
964
980
// CHECK-NEXT: testInnerNonAdjacentPhi: interior_liveness_swift with: %inner3
965
981
sil [ossa] @testInnerNonAdjacentPhi : $@convention(thin) (@guaranteed C) -> () {
966
982
bb0(%0 : @guaranteed $C):
0 commit comments