@@ -3149,6 +3149,61 @@ bb3 (%10: $Builtin.Int32):
3149
3149
return %10 : $Builtin.Int32
3150
3150
}
3151
3151
3152
+ // CHECK-LABEL: sil [ossa] @alloc_ref_dynamic_stack_with_metatype :
3153
+ // CHECK: bb0:
3154
+ // CHECK-NOT: alloc_ref_dynamic
3155
+ // CHECK-NEXT: alloc_ref [stack] $B
3156
+ // CHECK-NEXT: destroy_value
3157
+ // CHECK-NEXT: dealloc_stack_ref
3158
+ // CHECK: return
3159
+ // CHECK: } // end sil function 'alloc_ref_dynamic_stack_with_metatype'
3160
+ sil [ossa] @alloc_ref_dynamic_stack_with_metatype : $() -> () {
3161
+ %1 = metatype $@thick B.Type
3162
+ %2 = alloc_ref_dynamic [stack] %1 : $@thick B.Type, $B
3163
+ destroy_value %2 : $B
3164
+ dealloc_stack_ref %2 : $B
3165
+ %4 = tuple()
3166
+ return %4 : $()
3167
+ }
3168
+
3169
+ // CHECK-LABEL: sil [ossa] @alloc_ref_dynamic_stack_with_upcast_metatype :
3170
+ // CHECK: alloc_ref_dynamic [stack]
3171
+ // CHECK: } // end sil function 'alloc_ref_dynamic_stack_with_upcast_metatype'
3172
+ sil [ossa] @alloc_ref_dynamic_stack_with_upcast_metatype : $() -> () {
3173
+ %1 = metatype $@thick E.Type
3174
+ %2 = upcast %1 : $@thick E.Type to $@thick B.Type
3175
+ %3 = alloc_ref_dynamic [stack] %2 : $@thick B.Type, $B
3176
+ destroy_value %3 : $B
3177
+ dealloc_stack_ref %3 : $B
3178
+ %4 = tuple()
3179
+ return %4 : $()
3180
+ }
3181
+
3182
+ // CHECK-LABEL: @alloc_ref_dynamic_stack_after_successful_checked_cast_br :
3183
+ // CHECK: checked_cast_br
3184
+ // CHECK: bb1
3185
+ // CHECK-NOT: alloc_ref_dynamic
3186
+ // CHECK: alloc_ref [stack] $B
3187
+ // CHECK: } // end sil function 'alloc_ref_dynamic_stack_after_successful_checked_cast_br'
3188
+ sil [ossa] @alloc_ref_dynamic_stack_after_successful_checked_cast_br : $(@thick B.Type) -> Builtin.Int32 {
3189
+ bb0(%1 : $@thick B.Type):
3190
+ checked_cast_br [exact] %1 : $@thick B.Type to B.Type, bb1, bb2
3191
+
3192
+ bb1(%2 : $@thick B.Type):
3193
+ %3 = alloc_ref_dynamic [stack] %2 : $@thick B.Type, $B
3194
+ destroy_value %3 : $B
3195
+ dealloc_stack_ref %3 : $B
3196
+ %4 = integer_literal $Builtin.Int32, 1
3197
+ br bb3 (%4 : $Builtin.Int32)
3198
+
3199
+ bb2(%2a : $@thick B.Type):
3200
+ %5 = integer_literal $Builtin.Int32, 2
3201
+ br bb3 (%5 : $Builtin.Int32)
3202
+
3203
+ bb3 (%10: $Builtin.Int32):
3204
+ return %10 : $Builtin.Int32
3205
+ }
3206
+
3152
3207
// CHECK-LABEL: sil [ossa] @delete_dead_alloc_stack
3153
3208
// XHECK: bb0
3154
3209
// XHECK-NEXT: tuple
0 commit comments