Skip to content

Commit 69a306f

Browse files
authored
Merge pull request #19907 from ravikandhadai/rdar29939484
[Tests] Enable SILGen tests that were xfailed since the time when the
2 parents 38fead5 + 58e8ede commit 69a306f

File tree

6 files changed

+58
-68
lines changed

6 files changed

+58
-68
lines changed

test/SILGen/closures.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -215,16 +215,16 @@ func small_closure_capture_with_argument(_ x: Int) -> (_ y: Int) -> Int {
215215
// CHECK: destroy_value [[XBOX]]
216216
// CHECK: return [[ANON_CLOSURE_APP]]
217217
}
218-
// FIXME(integers): the following checks should be updated for the new way +
219-
// gets invoked. <rdar://problem/29939484>
220-
// XCHECK: sil private @[[CLOSURE_NAME]] : $@convention(thin) (Int, @guaranteed { var Int }) -> Int
221-
// XCHECK: bb0([[DOLLAR0:%[0-9]+]] : $Int, [[XBOX:%[0-9]+]] : ${ var Int }):
222-
// XCHECK: [[XADDR:%[0-9]+]] = project_box [[XBOX]]
223-
// XCHECK: [[PLUS:%[0-9]+]] = function_ref @$ss1poiS2i_SitF{{.*}}
224-
// XCHECK: [[LHS:%[0-9]+]] = load [trivial] [[XADDR]]
225-
// XCHECK: [[RET:%[0-9]+]] = apply [[PLUS]]([[LHS]], [[DOLLAR0]])
226-
// XCHECK: destroy_value [[XBOX]]
227-
// XCHECK: return [[RET]]
218+
// CHECK: sil private @[[CLOSURE_NAME]] : $@convention(thin) (Int, @guaranteed { var Int }) -> Int
219+
// CHECK: bb0([[DOLLAR0:%[0-9]+]] : @trivial $Int, [[XBOX:%[0-9]+]] : @guaranteed ${ var Int }):
220+
// CHECK: [[XADDR:%[0-9]+]] = project_box [[XBOX]]
221+
// CHECK: [[INTTYPE:%[0-9]+]] = metatype $@thin Int.Type
222+
// CHECK: [[XACCESS:%[0-9]+]] = begin_access [read] [unknown] [[XADDR]] : $*Int
223+
// CHECK: [[LHS:%[0-9]+]] = load [trivial] [[XACCESS]]
224+
// CHECK: end_access [[XACCESS]] : $*Int
225+
// CHECK: [[PLUS:%[0-9]+]] = function_ref @$sSi1poiyS2i_SitFZ{{.*}}
226+
// CHECK: [[RET:%[0-9]+]] = apply [[PLUS]]([[LHS]], [[DOLLAR0]], [[INTTYPE]])
227+
// CHECK: return [[RET]]
228228

229229
// CHECK-LABEL: sil hidden @$s8closures24small_closure_no_capture{{[_0-9a-zA-Z]*}}F
230230
func small_closure_no_capture() -> (_ y: Int) -> Int {

test/SILGen/default_constructor.swift

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,14 @@ class E {
4343
var i = Int64()
4444
}
4545

46-
// FIXME(integers): the following checks should be updated for the new way +
47-
// gets invoked. <rdar://problem/29939484>
48-
// XCHECK-LABEL: sil hidden [transparent] @$s19default_constructor1EC1is5Int64Vvfi : $@convention(thin) () -> Int64
49-
// XCHECK: [[FN:%.*]] = function_ref @$ss5Int64VABycfC : $@convention(method) (@thin Int64.Type) -> Int64
50-
// XCHECK-NEXT: [[METATYPE:%.*]] = metatype $@thin Int64.Type
51-
// XCHECK-NEXT: [[VALUE:%.*]] = apply [[FN]]([[METATYPE]]) : $@convention(method) (@thin Int64.Type) -> Int64
52-
// XCHECK-NEXT: return [[VALUE]] : $Int64
46+
// CHECK-LABEL: sil hidden [transparent] @$s19default_constructor1EC1is5Int64Vvpfi : $@convention(thin) () -> Int64
47+
// CHECK: [[IADDR:%[0-9]+]] = alloc_stack $Int64
48+
// CHECK: [[INTTYPE:%[0-9]+]] = metatype $@thick Int64.Type
49+
// CHECK: [[INIT:%[0-9]+]] = function_ref @$sSzsExycfC : $@convention(method)
50+
// CHECK-NEXT: apply [[INIT]]<Int64>([[IADDR]], [[INTTYPE]])
51+
// CHECK-NEXT: [[VALUE:%[0-9]+]] = load [trivial] [[IADDR]]
52+
// CHECK-NEXT: dealloc_stack [[IADDR]]
53+
// CHECK-NEXT: return [[VALUE]] : $Int64
5354

5455
// CHECK-LABEL: sil hidden @$s19default_constructor1EC{{[_0-9a-zA-Z]*}}fc : $@convention(method) (@owned E) -> @owned E
5556
// CHECK: bb0([[SELFIN:%[0-9]+]] : @owned $E)

test/SILGen/let_decls.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ func takeClosure(_ a : () -> Int) {}
88
// CHECK-LABEL: sil hidden @{{.*}}test1
99
func test1(_ a : Int) -> Int {
1010
// CHECK-NOT: alloc_box
11-
// FIXME(integers): the following check should be updated for the new way +
12-
// gets invoked. <rdar://problem/29939484>
13-
// XCHECK-NOT: alloc_stack
14-
1511
let (b,c) = (a, 32)
1612

1713
return b+c

test/SILGen/objc_bridging.swift

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -566,37 +566,34 @@ func getFridge(_ home: APPHouse) -> Refrigerator {
566566
return home.fridge
567567
}
568568

569-
// FIXME(integers): the following checks should be updated for the new integer
570-
// protocols. <rdar://problem/29939484>
571-
// XCHECK-LABEL: sil hidden @$s13objc_bridging16updateFridgeTemp{{.*}}F
572-
// XCHECK: bb0([[HOME:%[0-9]+]] : $APPHouse, [[DELTA:%[0-9]+]] : $Double):
569+
// CHECK-LABEL: sil hidden @$s13objc_bridging16updateFridgeTemp{{.*}}F
570+
// CHECK: bb0([[HOME:%[0-9]+]] : @guaranteed $APPHouse, [[DELTA:%[0-9]+]] : @trivial $Double):
573571
func updateFridgeTemp(_ home: APPHouse, delta: Double) {
574-
// +=
575-
// XCHECK: [[PLUS_EQ:%[0-9]+]] = function_ref @$ss2peoiyySdz_SdtF
576-
577572
// Temporary fridge
578-
// XCHECK: [[TEMP_FRIDGE:%[0-9]+]] = alloc_stack $Refrigerator
573+
// CHECK: [[TEMP_FRIDGE:%[0-9]+]] = alloc_stack $Refrigerator
579574

580575
// Get operation
581-
// CHECK: [[GETTER:%[0-9]+]] = objc_method [[HOME]] : $APPHouse, #APPHouse.fridge!getter.1.foreign
582-
// CHECK: [[OBJC_FRIDGE:%[0-9]+]] = apply [[GETTER]]([[HOME]])
576+
// CHECK-NEXT: [[GETTER:%[0-9]+]] = objc_method [[HOME]] : $APPHouse, #APPHouse.fridge!getter.1.foreign
577+
// CHECK-NEXT: [[OBJC_FRIDGE:%[0-9]+]] = apply [[GETTER]]([[HOME]])
583578
// CHECK: [[BRIDGE_FROM_FN:%[0-9]+]] = function_ref @$s10Appliances12RefrigeratorV36_unconditionallyBridgeFromObjectiveCyACSo15APPRefrigeratorCSgFZ
584-
// CHECK: [[REFRIGERATOR_META:%[0-9]+]] = metatype $@thin Refrigerator.Type
585-
// CHECK: [[FRIDGE:%[0-9]+]] = apply [[BRIDGE_FROM_FN]]([[OBJC_FRIDGE]], [[REFRIGERATOR_META]])
579+
// CHECK-NEXT: [[REFRIGERATOR_META:%[0-9]+]] = metatype $@thin Refrigerator.Type
580+
// CHECK-NEXT: [[FRIDGE:%[0-9]+]] = apply [[BRIDGE_FROM_FN]]([[OBJC_FRIDGE]], [[REFRIGERATOR_META]])
581+
// CHECK-NEXT: store [[FRIDGE]] to [trivial] [[TEMP_FRIDGE]]
586582

587583
// Addition
588-
// XCHECK: [[TEMP:%[0-9]+]] = struct_element_addr [[TEMP_FRIDGE]] : $*Refrigerator, #Refrigerator.temperature
589-
// XCHECK: apply [[PLUS_EQ]]([[TEMP]], [[DELTA]])
584+
// CHECK-NEXT: [[TEMP:%[0-9]+]] = struct_element_addr [[TEMP_FRIDGE]] : $*Refrigerator, #Refrigerator.temperature
585+
// CHECK: [[PLUS_EQ:%[0-9]+]] = function_ref @$sSd2peoiyySdz_SdtFZ
586+
// CHECK-NEXT: apply [[PLUS_EQ]]([[TEMP]], [[DELTA]], [[METATYPE:%[0-9]+]])
590587

591588
// Setter
592-
// XCHECK: [[FRIDGE:%[0-9]+]] = load [trivial] [[TEMP_FRIDGE]] : $*Refrigerator
593-
// XCHECK: [[SETTER:%[0-9]+]] = objc_method [[BORROWED_HOME]] : $APPHouse, #APPHouse.fridge!setter.1.foreign
594-
// XCHECK: [[BRIDGE_TO_FN:%[0-9]+]] = function_ref @$s10Appliances12RefrigeratorV19_bridgeToObjectiveCSo15APPRefrigeratorCyF
595-
// XCHECK: [[OBJC_ARG:%[0-9]+]] = apply [[BRIDGE_TO_FN]]([[FRIDGE]])
596-
// XCHECK: apply [[SETTER]]([[OBJC_ARG]], [[BORROWED_HOME]]) : $@convention(objc_method) (APPRefrigerator, APPHouse) -> ()
597-
// XCHECK: destroy_value [[OBJC_ARG]]
598-
// XCHECK: end_borrow [[BORROWED_HOME]]
599-
// XCHECK: destroy_value [[HOME]]
589+
// CHECK: [[FRIDGE:%[0-9]+]] = load [trivial] [[TEMP_FRIDGE]] : $*Refrigerator
590+
// CHECK: [[BRIDGE_TO_FN:%[0-9]+]] = function_ref @$s10Appliances12RefrigeratorV19_bridgeToObjectiveCSo15APPRefrigeratorCyF
591+
// CHECK-NEXT: [[OBJC_ARG:%[0-9]+]] = apply [[BRIDGE_TO_FN]]([[FRIDGE]])
592+
// CHECK-NEXT: [[SETTER:%[0-9]+]] = objc_method [[HOME]] : $APPHouse, #APPHouse.fridge!setter.1.foreign
593+
// CHECK-NEXT: apply [[SETTER]]([[OBJC_ARG]], [[HOME]]) : $@convention(objc_method) (APPRefrigerator, APPHouse) -> ()
594+
// CHECK-NEXT: destroy_value [[OBJC_ARG]]
595+
// CHECK-NEXT: destroy_value [[OBJC_FRIDGE]]
596+
// CHECK-NEXT: dealloc_stack [[TEMP_FRIDGE]]
600597
home.fridge.temperature += delta
601598
}
602599

test/SILGen/switch_var.swift

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -578,36 +578,32 @@ func test_multiple_patterns1() {
578578
}
579579
}
580580

581-
// FIXME(integers): the following checks should be updated for the new integer
582-
// protocols. <rdar://problem/29939484>
583-
// XCHECK-LABEL: sil hidden @$s10switch_var23test_multiple_patterns2yyF : $@convention(thin) () -> () {
581+
// CHECK-LABEL: sil hidden @$s10switch_var23test_multiple_patterns2yyF : $@convention(thin) () -> () {
584582
func test_multiple_patterns2() {
585583
let t1 = 2
586584
let t2 = 4
587-
// XCHECK: debug_value [[T1:%.*]] :
588-
// XCHECK: debug_value [[T2:%.*]] :
585+
// CHECK: debug_value [[T1:%.+]] :
586+
// CHECK: debug_value [[T2:%.+]] :
589587
switch (0,0) {
590-
// XCHECK-NOT: br bb
588+
// CHECK-NOT: br bb
591589
case (_, let x) where x > t1, (let x, _) where x > t2:
592-
// XCHECK: [[FIRST_X:%.*]] = tuple_extract {{%.*}} : $(Int, Int), 1
593-
// XCHECK: debug_value [[FIRST_X]] :
594-
// XCHECK: apply {{%.*}}([[FIRST_X]], [[T1]])
595-
// XCHECK: cond_br {{%.*}}, [[FIRST_MATCH_CASE:bb[0-9]+]], [[FIRST_FAIL:bb[0-9]+]]
596-
// XCHECK: [[FIRST_MATCH_CASE]]:
597-
// XCHECK: br [[CASE_BODY:bb[0-9]+]]([[FIRST_X]] : $Int)
598-
// XCHECK: [[FIRST_FAIL]]:
599-
// XCHECK: debug_value [[SECOND_X:%.*]] :
600-
// XCHECK: apply {{%.*}}([[SECOND_X]], [[T2]])
601-
// XCHECK: cond_br {{%.*}}, [[SECOND_MATCH_CASE:bb[0-9]+]], [[SECOND_FAIL:bb[0-9]+]]
602-
// XCHECK: [[SECOND_MATCH_CASE]]:
603-
// XCHECK: br [[CASE_BODY]]([[SECOND_X]] : $Int)
604-
// XCHECK: [[CASE_BODY]]([[BODY_VAR:%.*]] : $Int):
605-
// XCHECK: [[A:%.*]] = function_ref @$s10switch_var1aySi1x_tF
606-
// XCHECK: apply [[A]]([[BODY_VAR]])
590+
// CHECK: ([[FIRST:%[0-9]+]], [[SECOND:%[0-9]+]]) = destructure_tuple {{%.+}} : $(Int, Int)
591+
// CHECK: apply {{%.+}}([[SECOND]], [[T1]], {{%.+}})
592+
// CHECK: cond_br {{%.*}}, [[FIRST_MATCH_CASE:bb[0-9]+]], [[FIRST_FAIL:bb[0-9]+]]
593+
// CHECK: [[FIRST_MATCH_CASE]]:
594+
// CHECK: br [[CASE_BODY:bb[0-9]+]]([[SECOND]] : $Int)
595+
// CHECK: [[FIRST_FAIL]]:
596+
// CHECK: apply {{%.*}}([[FIRST]], [[T2]], {{%.+}})
597+
// CHECK: cond_br {{%.*}}, [[SECOND_MATCH_CASE:bb[0-9]+]], [[SECOND_FAIL:bb[0-9]+]]
598+
// CHECK: [[SECOND_MATCH_CASE]]:
599+
// CHECK: br [[CASE_BODY]]([[FIRST]] : $Int)
600+
// CHECK: [[CASE_BODY]]([[BODY_VAR:%.*]] : @trivial $Int):
601+
// CHECK: [[A:%.*]] = function_ref @$s10switch_var1a1xySi_tF
602+
// CHECK: apply [[A]]([[BODY_VAR]])
607603
a(x: x)
608604
default:
609-
// XCHECK: [[SECOND_FAIL]]:
610-
// XCHECK: function_ref @$s10switch_var1byyF
605+
// CHECK: [[SECOND_FAIL]]:
606+
// CHECK: function_ref @$s10switch_var1byyF
611607
b()
612608
}
613609
}

test/SILOptimizer/diagnostic_constant_propagation.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// tests here that must fail don't currently. Such tests have comments
66
// describing the desirable behavior. They are false negatives now but have
77
// to be addressed in the future.
8-
// References: <rdar://problem/29937936>, <rdar://problem/29939484>,
9-
// <https://bugs.swift.org/browse/SR-5964>, <rdar://problem/39120081>
8+
// References: <rdar://problem/29937936>,
9+
// <https://bugs.swift.org/browse/SR-5964>
1010

1111
import StdlibUnittest
1212

0 commit comments

Comments
 (0)