Skip to content

Commit ba03bef

Browse files
committed
Fix test cases for SILGen after removing critical edges.
1 parent 2ccc089 commit ba03bef

29 files changed

+221
-375
lines changed

test/IRGen/enum_resilience.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,11 @@ public func constructResilientEnumPayload(_ s: Size) -> Medium {
221221
// CHECK: br label %[[END]]
222222

223223
// CHECK: ; <label>:[[DEFAULT_CASE]]
224-
// CHECK: br label %[[DEFAULT_CASE_DESTROY:.*]]
225-
226-
// CHECK: <label>:[[DEFAULT_CASE_DESTROY]]
227224
// CHeCK: call void %destroy
228225
// CHECK: br label %[[END]]
229226

230227
// CHECK: ; <label>:[[END]]
231-
// CHECK: = phi [[INT]] [ 3, %[[DEFAULT_CASE_DESTROY]] ], [ {{.*}}, %[[PAMPHLET_CASE_LABEL]] ], [ 2, %[[CANVAS_CASE_LABEL]] ], [ 1, %[[PAPER_CASE_LABEL]] ]
228+
// CHECK: = phi [[INT]] [ 3, %[[DEFAULT_CASE]] ], [ {{.*}}, %[[PAMPHLET_CASE_LABEL]] ], [ 2, %[[CANVAS_CASE_LABEL]] ], [ 1, %[[PAPER_CASE_LABEL]] ]
232229
// CHECK: ret
233230

234231
public func resilientSwitchTest(_ m: Medium) -> Int {

test/SILGen/auto_generated_super_init_call.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class SomeDerivedClass : Parent {
4040
// Check that we are emitting the super.init expr into the epilog block.
4141

4242
// CHECK-LABEL: sil hidden @$s30auto_generated_super_init_call16SomeDerivedClassC{{[_0-9a-zA-Z]*}}fc : $@convention(method) (Bool, @owned SomeDerivedClass) -> @owned SomeDerivedClass
43-
// CHECK: bb4:
43+
// CHECK: bb5:
4444
// SEMANTIC ARC TODO: Another case of needing a mutable load_borrow.
4545
// CHECK-NEXT: [[SELFLOAD:%[0-9]+]] = load [take] [[SELF:%[0-9]+]] : $*SomeDerivedClass
4646
// CHECK-NEXT: [[SELFLOAD_PARENT_CAST:%.*]] = upcast [[SELFLOAD]]

test/SILGen/errors.swift

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -694,12 +694,10 @@ func testForcePeephole(_ f: () throws -> Int?) -> Int {
694694
// CHECK-NEXT: destroy_value [[RESULT]] : $Optional<Cat>
695695
// CHECK-NEXT: [[VOID:%.+]] = tuple ()
696696
// CHECK-NEXT: return [[VOID]] : $()
697-
// CHECK: [[FAILURE:.+]]([[ERROR:%.*]] : @owned $Error):
697+
// CHECK: [[CLEANUPS:.+]]([[ERROR:%.*]] : @owned $Error):
698698
// CHECK-NEXT: destroy_value [[ERROR]]
699699
// CHECK-NEXT: [[NONE:%.+]] = enum $Optional<Cat>, #Optional.none!enumelt
700700
// CHECK-NEXT: br [[DONE]]([[NONE]] : $Optional<Cat>)
701-
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
702-
// CHECK-NEXT: br [[FAILURE]]([[ERROR]] : $Error)
703701
// CHECK: } // end sil function '$s6errors15testOptionalTryyyF'
704702
func testOptionalTry() {
705703
_ = try? make_a_cat()
@@ -729,12 +727,10 @@ func testOptionalTryThatNeverThrows() {
729727
// CHECK-NEXT: destroy_value [[BOX]] : ${ var Optional<Cat> }
730728
// CHECK-NEXT: [[VOID:%.+]] = tuple ()
731729
// CHECK-NEXT: return [[VOID]] : $()
732-
// CHECK: [[FAILURE:.+]]([[ERROR:%.*]] : @owned $Error):
730+
// CHECK: [[CLEANUPS:.+]]([[ERROR:%.*]] : @owned $Error):
733731
// CHECK-NEXT: destroy_value [[ERROR]]
734732
// CHECK-NEXT: inject_enum_addr [[PB]] : $*Optional<Cat>, #Optional.none!enumelt
735733
// CHECK-NEXT: br [[DONE]]
736-
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
737-
// CHECK-NEXT: br [[FAILURE]]([[ERROR]] : $Error)
738734
// CHECK: } // end sil function '$s6errors18testOptionalTryVaryyF'
739735
func testOptionalTryVar() {
740736
var cat = try? make_a_cat() // expected-warning {{initialization of variable 'cat' was never used; consider replacing with assignment to '_' or removing it}}
@@ -755,12 +751,10 @@ func testOptionalTryVar() {
755751
// CHECK-NOT: destroy_addr %0 : $*T
756752
// CHECK-NEXT: [[VOID:%.+]] = tuple ()
757753
// CHECK-NEXT: return [[VOID]] : $()
758-
// CHECK: [[FAILURE:.+]]([[ERROR:%.*]] : @owned $Error):
754+
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
759755
// CHECK-NEXT: destroy_value [[ERROR]]
760756
// CHECK-NEXT: inject_enum_addr [[BOX]] : $*Optional<T>, #Optional.none!enumelt
761757
// CHECK-NEXT: br [[DONE]]
762-
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
763-
// CHECK-NEXT: br [[FAILURE]]([[ERROR]] : $Error)
764758
// CHECK: } // end sil function '$s6errors26testOptionalTryAddressOnlyyyxlF'
765759
func testOptionalTryAddressOnly<T>(_ obj: T) {
766760
_ = try? dont_return(obj)
@@ -781,12 +775,10 @@ func testOptionalTryAddressOnly<T>(_ obj: T) {
781775
// CHECK-NOT: destroy_addr %0 : $*T
782776
// CHECK-NEXT: [[VOID:%.+]] = tuple ()
783777
// CHECK-NEXT: return [[VOID]] : $()
784-
// CHECK: [[FAILURE:.+]]([[ERROR:%.*]] : @owned $Error):
778+
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
785779
// CHECK-NEXT: destroy_value [[ERROR]]
786780
// CHECK-NEXT: inject_enum_addr [[PB]] : $*Optional<T>, #Optional.none!enumelt
787781
// CHECK-NEXT: br [[DONE]]
788-
// CHECK: [[CLEANUPS]]([[ERROR:%.+]] : @owned $Error):
789-
// CHECK-NEXT: br [[FAILURE]]([[ERROR]] : $Error)
790782
// CHECK: } // end sil function '$s6errors29testOptionalTryAddressOnlyVaryyxlF'
791783
func testOptionalTryAddressOnlyVar<T>(_ obj: T) {
792784
var copy = try? dont_return(obj) // expected-warning {{initialization of variable 'copy' was never used; consider replacing with assignment to '_' or removing it}}

test/SILGen/force_cast_chained_optional.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ class D: C {}
1818
// CHECK: select_enum_addr {{%.*}}
1919
// CHECK: cond_br {{%.*}}, [[SOME_BAR:bb[0-9]+]], [[NO_BAR:bb[0-9]+]]
2020
//
21-
// CHECK: [[NO_BAR]]:
22-
// CHECK: br [[TRAP:bb[0-9]+]]
23-
//
2421
// CHECK: [[SOME_BAR]]:
2522
// CHECK: [[PAYLOAD_ADDR:%.*]] = unchecked_take_enum_data_addr {{%.*}} : $*Optional<Bar>
2623
// CHECK: [[BAR:%.*]] = load [copy] [[PAYLOAD_ADDR]]
@@ -30,7 +27,7 @@ class D: C {}
3027
// CHECK: end_borrow [[BORROWED_BAR]]
3128
// CHECK: unconditional_checked_cast {{%.*}} : $C to $D
3229
//
33-
// CHECK: [[TRAP]]:
30+
// CHECK: [[NO_BAR]]:
3431
// CHECK: unreachable
3532
func test(_ x: Foo) -> D {
3633
return x.bar?.bas as! D

test/SILGen/foreach.swift

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,12 @@ protocol GenericCollection : Collection {
5959
// CHECK: [[LOOP_DEST]]:
6060
// CHECK: switch_enum [[IND_VAR:%.*]] : $Optional<Int>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
6161
//
62-
// CHECK: [[NONE_BB]]:
63-
// CHECK: br [[CONT_BLOCK:bb[0-9]+]]
64-
//
6562
// CHECK: [[SOME_BB]]([[VAR:%.*]] : @trivial $Int):
6663
// CHECK: [[LOOP_END_FUNC:%.*]] = function_ref @loopBodyEnd : $@convention(thin) () -> ()
6764
// CHECK: apply [[LOOP_END_FUNC]]()
6865
// CHECK: br [[LOOP_DEST]]
6966
//
70-
// CHECK: [[CONT_BLOCK]]:
67+
// CHECK: [[NONE_BB]]:
7168
// CHECK: destroy_value [[ITERATOR_BOX]]
7269
// CHECK: [[FUNC_END_FUNC:%.*]] = function_ref @funcEnd : $@convention(thin) () -> ()
7370
// CHECK: apply [[FUNC_END_FUNC]]()
@@ -123,9 +120,6 @@ func trivialStructBreak(_ xx: [Int]) {
123120
// CHECK: [[IND_VAR:%.*]] = load [trivial] [[GET_ELT_STACK]]
124121
// CHECK: switch_enum [[IND_VAR]] : $Optional<Int>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
125122
//
126-
// CHECK: [[NONE_BB]]:
127-
// CHECK: br [[CONT_BLOCK_JUMP:bb[0-9]+]]
128-
//
129123
// CHECK: [[SOME_BB]]([[VAR:%.*]] : @trivial $Int):
130124
// CHECK: cond_br {{%.*}}, [[LOOP_BREAK_END_BLOCK:bb[0-9]+]], [[CONTINUE_CHECK_BLOCK:bb[0-9]+]]
131125
//
@@ -147,7 +141,7 @@ func trivialStructBreak(_ xx: [Int]) {
147141
// CHECK: apply [[LOOP_BODY_FUNC]]()
148142
// CHECK: br [[LOOP_DEST]]
149143
//
150-
// CHECK: [[CONT_BLOCK_JUMP]]:
144+
// CHECK: [[NONE_BB]]:
151145
// CHECK: br [[CONT_BLOCK]]
152146
//
153147
// CHECK: [[CONT_BLOCK]]
@@ -225,9 +219,6 @@ func existentialBreak(_ xx: [P]) {
225219
// CHECK: apply [[FUNC_REF]]<[P]>([[ELT_STACK]], [[WRITE]])
226220
// CHECK: switch_enum_addr [[ELT_STACK]] : $*Optional<P>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
227221
//
228-
// CHECK: [[NONE_BB]]:
229-
// CHECK: br [[CONT_BLOCK_JUMP:bb[0-9]+]]
230-
//
231222
// CHECK: [[SOME_BB]]:
232223
// CHECK: [[T0:%.*]] = alloc_stack $P, let, name "x"
233224
// CHECK: [[ELT_STACK_TAKE:%.*]] = unchecked_take_enum_data_addr [[ELT_STACK]] : $*Optional<P>, #Optional.some!enumelt.1
@@ -258,7 +249,7 @@ func existentialBreak(_ xx: [P]) {
258249
// CHECK: dealloc_stack [[T0]]
259250
// CHECK: br [[LOOP_DEST]]
260251
//
261-
// CHECK: [[CONT_BLOCK_JUMP]]:
252+
// CHECK: [[NONE_BB]]:
262253
// CHECK: br [[CONT_BLOCK]]
263254
//
264255
// CHECK: [[CONT_BLOCK]]
@@ -388,9 +379,6 @@ func genericStructBreak<T>(_ xx: [GenericStruct<T>]) {
388379
// CHECK: apply [[FUNC_REF]]<[GenericStruct<T>]>([[ELT_STACK]], [[WRITE]])
389380
// CHECK: switch_enum_addr [[ELT_STACK]] : $*Optional<GenericStruct<T>>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
390381
//
391-
// CHECK: [[NONE_BB]]:
392-
// CHECK: br [[CONT_BLOCK_JUMP:bb[0-9]+]]
393-
//
394382
// CHECK: [[SOME_BB]]:
395383
// CHECK: [[T0:%.*]] = alloc_stack $GenericStruct<T>, let, name "x"
396384
// CHECK: [[ELT_STACK_TAKE:%.*]] = unchecked_take_enum_data_addr [[ELT_STACK]] : $*Optional<GenericStruct<T>>, #Optional.some!enumelt.1
@@ -421,7 +409,7 @@ func genericStructBreak<T>(_ xx: [GenericStruct<T>]) {
421409
// CHECK: dealloc_stack [[T0]]
422410
// CHECK: br [[LOOP_DEST]]
423411
//
424-
// CHECK: [[CONT_BLOCK_JUMP]]:
412+
// CHECK: [[NONE_BB]]:
425413
// CHECK: br [[CONT_BLOCK]]
426414
//
427415
// CHECK: [[CONT_BLOCK]]
@@ -497,9 +485,6 @@ func genericCollectionBreak<T : Collection>(_ xx: T) {
497485
// CHECK: apply [[GET_NEXT_FUNC]]<T.Iterator>([[ELT_STACK]], [[WRITE]])
498486
// CHECK: switch_enum_addr [[ELT_STACK]] : $*Optional<T.Element>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
499487
//
500-
// CHECK: [[NONE_BB]]:
501-
// CHECK: br [[CONT_BLOCK_JUMP:bb[0-9]+]]
502-
//
503488
// CHECK: [[SOME_BB]]:
504489
// CHECK: [[T0:%.*]] = alloc_stack $T.Element, let, name "x"
505490
// CHECK: [[ELT_STACK_TAKE:%.*]] = unchecked_take_enum_data_addr [[ELT_STACK]] : $*Optional<T.Element>, #Optional.some!enumelt.1
@@ -530,7 +515,7 @@ func genericCollectionBreak<T : Collection>(_ xx: T) {
530515
// CHECK: dealloc_stack [[T0]]
531516
// CHECK: br [[LOOP_DEST]]
532517
//
533-
// CHECK: [[CONT_BLOCK_JUMP]]:
518+
// CHECK: [[NONE_BB]]:
534519
// CHECK: br [[CONT_BLOCK]]
535520
//
536521
// CHECK: [[CONT_BLOCK]]
@@ -562,27 +547,27 @@ func genericCollectionContinueBreak<T : Collection>(_ xx: T) {
562547

563548
// CHECK-LABEL: sil hidden @$s7foreach13tupleElementsyySayAA1CC_ADtGF
564549
func tupleElements(_ xx: [(C, C)]) {
565-
// CHECK: bb3([[PAYLOAD:%.*]] : @owned $(C, C)):
550+
// CHECK: bb{{.*}}([[PAYLOAD:%.*]] : @owned $(C, C)):
566551
// CHECK: ([[A:%.*]], [[B:%.*]]) = destructure_tuple [[PAYLOAD]]
567552
// CHECK: destroy_value [[B]]
568553
// CHECK: destroy_value [[A]]
569554
for (a, b) in xx {}
570-
// CHECK: bb7([[PAYLOAD:%.*]] : @owned $(C, C)):
555+
// CHECK: bb{{.*}}([[PAYLOAD:%.*]] : @owned $(C, C)):
571556
// CHECK: ([[A:%.*]], [[B:%.*]]) = destructure_tuple [[PAYLOAD]]
572557
// CHECK: destroy_value [[B]]
573558
// CHECK: destroy_value [[A]]
574559
for (a, _) in xx {}
575-
// CHECK: bb11([[PAYLOAD:%.*]] : @owned $(C, C)):
560+
// CHECK: bb{{.*}}([[PAYLOAD:%.*]] : @owned $(C, C)):
576561
// CHECK: ([[A:%.*]], [[B:%.*]]) = destructure_tuple [[PAYLOAD]]
577562
// CHECK: destroy_value [[A]]
578563
// CHECK: destroy_value [[B]]
579564
for (_, b) in xx {}
580-
// CHECK: bb15([[PAYLOAD:%.*]] : @owned $(C, C)):
565+
// CHECK: bb{{.*}}([[PAYLOAD:%.*]] : @owned $(C, C)):
581566
// CHECK: ([[A:%.*]], [[B:%.*]]) = destructure_tuple [[PAYLOAD]]
582567
// CHECK: destroy_value [[B]]
583568
// CHECK: destroy_value [[A]]
584569
for (_, _) in xx {}
585-
// CHECK: bb19([[PAYLOAD:%.*]] : @owned $(C, C)):
570+
// CHECK: bb{{.*}}([[PAYLOAD:%.*]] : @owned $(C, C)):
586571
// CHECK: ([[A:%.*]], [[B:%.*]]) = destructure_tuple [[PAYLOAD]]
587572
// CHECK: destroy_value [[B]]
588573
// CHECK: destroy_value [[A]]
@@ -599,9 +584,6 @@ func tupleElements(_ xx: [(C, C)]) {
599584
// CHECK: [[LOOP_DEST]]:
600585
// CHECK: switch_enum [[OPT_VAL:%.*]] : $Optional<Int>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]
601586
//
602-
// CHECK: [[NONE_BB]]:
603-
// CHECK: br [[CONT_BB:bb[0-9]+]]
604-
//
605587
// CHECK: [[SOME_BB]]([[VAL:%.*]] : @trivial $Int):
606588
// CHECK: [[LOOP_END_FUNC:%.*]] = function_ref @loopBodyEnd : $@convention(thin) () -> ()
607589
// CHECK: apply [[LOOP_END_FUNC]]

0 commit comments

Comments
 (0)