@@ -610,15 +610,12 @@ bb3:
610610
611611sil [ossa] @takeGuaranteedObj : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
612612
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.
615614//
616615// CHECK-LABEL: sil [ossa] @copyWithLoadRelease : $@convention(thin) (@in_guaranteed Builtin.NativeObject) -> () {
617616// 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]
622619// CHECK-LABEL: } // end sil function 'copyWithLoadRelease'
623620sil [ossa] @copyWithLoadRelease : $@convention(thin) (@in_guaranteed Builtin.NativeObject) -> () {
624621bb0(%0 : $*Builtin.NativeObject):
@@ -633,14 +630,11 @@ bb0(%0 : $*Builtin.NativeObject):
633630 return %v : $()
634631}
635632
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.
638634//
639635// CHECK-LABEL: sil [ossa] @takeWithLoadRelease : $@convention(thin) (@in Builtin.NativeObject) -> () {
640636// 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
644638// CHECK-LABEL: } // end sil function 'takeWithLoadRelease'
645639sil [ossa] @takeWithLoadRelease : $@convention(thin) (@in Builtin.NativeObject) -> () {
646640bb0(%0 : $*Builtin.NativeObject):
@@ -675,12 +669,11 @@ bb0(%0 : $*GS<Builtin.NativeObject>):
675669 return %v : $()
676670}
677671
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+ //
680674// CHECK-LABEL: sil [ossa] @hoist_load_copy_to_src_copy_addr_site : $@convention(thin) (@owned GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
681675// CHECK: bb0([[ARG:%.*]] : @owned
682- // CHECK: apply {{%.*}}([[ARG]])
683- // CHECK: return [[ARG]]
676+ // CHECK: alloc_stack
684677// CHECK: } // end sil function 'hoist_load_copy_to_src_copy_addr_site'
685678sil [ossa] @hoist_load_copy_to_src_copy_addr_site : $@convention(thin) (@owned GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
686679bb0(%0 : @owned $GS<Builtin.NativeObject>):
@@ -693,24 +686,11 @@ bb0(%0 : @owned $GS<Builtin.NativeObject>):
693686 return %obj : $GS<Builtin.NativeObject>
694687}
695688
689+ // We do not support this on 5.3.
690+ //
696691// CHECK-LABEL: sil [ossa] @hoist_load_copy_to_src_copy_addr_site_two_takes : $@convention(thin) (@in GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
697692// 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
714694// CHECK: } // end sil function 'hoist_load_copy_to_src_copy_addr_site_two_takes'
715695sil [ossa] @hoist_load_copy_to_src_copy_addr_site_two_takes : $@convention(thin) (@in GS<Builtin.NativeObject>) -> @owned GS<Builtin.NativeObject> {
716696bb0(%0 : $*GS<Builtin.NativeObject>):
@@ -1016,12 +996,11 @@ bb0(%0 : $*Klass):
1016996sil [ossa] @store_getP : $@convention(thin) () -> @out Optional<P>
1017997sil [ossa] @store_takeGuaranteedObj : $@convention(thin) (@guaranteed Builtin.NativeObject) -> ()
1018998
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.
10211000//
10221001// CHECK-LABEL: sil [ossa] @store_copyWithLoadRelease : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
10231002// CHECK: bb0(%0 : @guaranteed $Builtin.NativeObject):
1024- // CHECK-NOT : alloc_stack
1003+ // CHECK: alloc_stack
10251004// CHECK-LABEL: } // end sil function 'store_copyWithLoadRelease'
10261005sil [ossa] @store_copyWithLoadRelease : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
10271006bb0(%0 : @guaranteed $Builtin.NativeObject):
@@ -1037,11 +1016,10 @@ bb0(%0 : @guaranteed $Builtin.NativeObject):
10371016 return %v : $()
10381017}
10391018
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.
10421020//
10431021// CHECK-LABEL: sil [ossa] @store_takeWithLoadRelease : $@convention(thin) (@owned Builtin.NativeObject) -> () {
1044- // CHECK-NOT : alloc_stack
1022+ // CHECK: alloc_stack
10451023// CHECK-LABEL: } // end sil function 'store_takeWithLoadRelease'
10461024sil [ossa] @store_takeWithLoadRelease : $@convention(thin) (@owned Builtin.NativeObject) -> () {
10471025bb0(%0 : @owned $Builtin.NativeObject):
0 commit comments