@@ -610,15 +610,12 @@ bb3:
610
610
611
611
sil [ossa] @takeGuaranteedObj : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
612
612
613
- // Now that we support ossa, eliminate the alloc_stack and change the load
614
- // [take] to a load [copy] in the process.
613
+ // We do not support this in 5.3.
615
614
//
616
615
// CHECK-LABEL: sil [ossa] @copyWithLoadRelease : $@convention(thin) (@in_guaranteed Builtin.NativeObject) -> () {
617
616
// CHECK: bb0(%0 : $*Builtin.NativeObject):
618
- // CHECK-NOT: alloc_stack
619
- // CHECK: [[VAL:%.*]] = load [copy] %0 : $*Builtin.NativeObject
620
- // CHECK: apply %{{.*}}([[VAL]]) : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
621
- // CHECK: destroy_value [[VAL]] : $Builtin.NativeObject
617
+ // CHECK: alloc_stack
618
+ // CHECK: load [take]
622
619
// CHECK-LABEL: } // end sil function 'copyWithLoadRelease'
623
620
sil [ossa] @copyWithLoadRelease : $@convention(thin) (@in_guaranteed Builtin.NativeObject) -> () {
624
621
bb0(%0 : $*Builtin.NativeObject):
@@ -633,14 +630,11 @@ bb0(%0 : $*Builtin.NativeObject):
633
630
return %v : $()
634
631
}
635
632
636
- // Remove a copy that is released via a load. Leave the load [take] alone since
637
- // our copy_addr is taking from source.
633
+ // We do not support this in 5.3.
638
634
//
639
635
// CHECK-LABEL: sil [ossa] @takeWithLoadRelease : $@convention(thin) (@in Builtin.NativeObject) -> () {
640
636
// CHECK: bb0(%0 : $*Builtin.NativeObject):
641
- // CHECK: [[V:%.*]] = load [take] %0 : $*Builtin.NativeObject
642
- // CHECK: apply %{{.*}}([[V]]) : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
643
- // CHECK: destroy_value [[V]] : $Builtin.NativeObject
637
+ // CHECK: alloc_stack
644
638
// CHECK-LABEL: } // end sil function 'takeWithLoadRelease'
645
639
sil [ossa] @takeWithLoadRelease : $@convention(thin) (@in Builtin.NativeObject) -> () {
646
640
bb0(%0 : $*Builtin.NativeObject):
@@ -675,12 +669,11 @@ bb0(%0 : $*GS<Builtin.NativeObject>):
675
669
return %v : $()
676
670
}
677
671
678
- // Make sure that when we convert the load [take] to a load [copy], we hoist the
679
- // load of src /before/ the destroy of %0.
672
+ // We do not support this on 5.3.
673
+ //
680
674
// CHECK-LABEL: sil [ossa] @hoist_load_copy_to_src_copy_addr_site : $@convention(thin) (@owned GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
681
675
// CHECK: bb0([[ARG:%.*]] : @owned
682
- // CHECK: apply {{%.*}}([[ARG]])
683
- // CHECK: return [[ARG]]
676
+ // CHECK: alloc_stack
684
677
// CHECK: } // end sil function 'hoist_load_copy_to_src_copy_addr_site'
685
678
sil [ossa] @hoist_load_copy_to_src_copy_addr_site : $@convention(thin) (@owned GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
686
679
bb0(%0 : @owned $GS<Builtin.NativeObject>):
@@ -693,24 +686,11 @@ bb0(%0 : @owned $GS<Builtin.NativeObject>):
693
686
return %obj : $GS<Builtin.NativeObject>
694
687
}
695
688
689
+ // We do not support this on 5.3.
690
+ //
696
691
// CHECK-LABEL: sil [ossa] @hoist_load_copy_to_src_copy_addr_site_two_takes : $@convention(thin) (@in GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
697
692
// CHECK: bb0([[ARG:%.*]] :
698
- // CHECK: [[COPY_1:%.*]] = load [copy] [[ARG]]
699
- // CHECK: [[COPY_2:%.*]] = load [copy] [[ARG]]
700
- // CHECK: destroy_addr [[ARG]]
701
- // CHECK: cond_br undef, bb1, bb2
702
- //
703
- // CHECK: bb1:
704
- // CHECK: destroy_value [[COPY_1]]
705
- // CHECK: br bb3([[COPY_2]] :
706
- //
707
- // CHECK: bb2:
708
- // CHECK: destroy_value [[COPY_2]]
709
- // CHECK: br bb3([[COPY_1]] :
710
- //
711
- // CHECK: bb3([[RESULT:%.*]] : @owned
712
- // CHECK: apply {{%.*}}([[RESULT]])
713
- // CHECK: return [[RESULT]]
693
+ // CHECK: alloc_stack
714
694
// CHECK: } // end sil function 'hoist_load_copy_to_src_copy_addr_site_two_takes'
715
695
sil [ossa] @hoist_load_copy_to_src_copy_addr_site_two_takes : $@convention(thin) (@in GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
716
696
bb0(%0 : $*GS<Builtin.NativeObject>):
@@ -1016,12 +996,11 @@ bb0(%0 : $*Klass):
1016
996
sil [ossa] @store_getP : $@convention(thin) () -> @out Optional<P>
1017
997
sil [ossa] @store_takeGuaranteedObj : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
1018
998
1019
- // Now that we support ossa, eliminate the alloc_stack and change the load
1020
- // [take] to a load [copy] in the process.
999
+ // We do not support this on 5.3.
1021
1000
//
1022
1001
// CHECK-LABEL: sil [ossa] @store_copyWithLoadRelease : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
1023
1002
// CHECK: bb0(%0 : @guaranteed $Builtin.NativeObject):
1024
- // CHECK-NOT : alloc_stack
1003
+ // CHECK: alloc_stack
1025
1004
// CHECK-LABEL: } // end sil function 'store_copyWithLoadRelease'
1026
1005
sil [ossa] @store_copyWithLoadRelease : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
1027
1006
bb0(%0 : @guaranteed $Builtin.NativeObject):
@@ -1037,11 +1016,10 @@ bb0(%0 : @guaranteed $Builtin.NativeObject):
1037
1016
return %v : $()
1038
1017
}
1039
1018
1040
- // Remove a copy that is released via a load. Leave the load [take] alone since
1041
- // our copy_addr is taking from source.
1019
+ // We do not support this on 5.3.
1042
1020
//
1043
1021
// CHECK-LABEL: sil [ossa] @store_takeWithLoadRelease : $@convention(thin) (@owned Builtin.NativeObject) -> () {
1044
- // CHECK-NOT : alloc_stack
1022
+ // CHECK: alloc_stack
1045
1023
// CHECK-LABEL: } // end sil function 'store_takeWithLoadRelease'
1046
1024
sil [ossa] @store_takeWithLoadRelease : $@convention(thin) (@owned Builtin.NativeObject) -> () {
1047
1025
bb0(%0 : @owned $Builtin.NativeObject):
0 commit comments