Skip to content

Commit baec06e

Browse files
committed
[variable-name-inference] Add support for handling EndInitLetRefInst.
1 parent cdfeefc commit baec06e

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

lib/SILOptimizer/Utils/VariableNameUtils.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,8 @@ SILValue VariableNameInferrer::findDebugInfoProvidingValueHelper(
626626
isa<CopyableToMoveOnlyWrapperAddrInst>(searchValue) ||
627627
isa<MoveOnlyWrapperToCopyableAddrInst>(searchValue) ||
628628
isa<MoveOnlyWrapperToCopyableValueInst>(searchValue) ||
629-
isa<CopyableToMoveOnlyWrapperValueInst>(searchValue)) {
629+
isa<CopyableToMoveOnlyWrapperValueInst>(searchValue) ||
630+
isa<EndInitLetRefInst>(searchValue)) {
630631
searchValue = cast<SingleValueInstruction>(searchValue)->getOperand(0);
631632
continue;
632633
}

test/SILOptimizer/variable_name_inference.sil

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -866,10 +866,10 @@ bb0:
866866
}
867867

868868
// CHECK-LABEL: begin running test 1 of 1 on begin_borrow_var_decl_3: variable-name-inference with: @trace[0]
869-
// CHECK-LABEL: Input Value: %1 = apply %0() : $@convention(thin) () -> @owned Klass
870-
// CHECK-LABEL: Name: 'unknown'
871-
// CHECK-LABEL: Root: 'unknown'
872-
// CHECK-LABEL: end running test 1 of 1 on begin_borrow_var_decl_3: variable-name-inference with: @trace[0]
869+
// CHECK: Input Value: %1 = apply %0() : $@convention(thin) () -> @owned Klass
870+
// CHECK: Name: 'unknown'
871+
// CHECK: Root: 'unknown'
872+
// CHECK: end running test 1 of 1 on begin_borrow_var_decl_3: variable-name-inference with: @trace[0]
873873
sil [ossa] @begin_borrow_var_decl_3 : $@convention(thin) () -> () {
874874
bb0:
875875
specify_test "variable-name-inference @trace[0]"
@@ -883,3 +883,17 @@ bb0:
883883
%9999 = tuple ()
884884
return %9999 : $()
885885
}
886+
887+
// CHECK-LABEL: begin running test 1 of 1 on infer_through_end_init_let_ref: variable-name-inference with: @trace[0]
888+
// CHECK: Input Value: %2 = end_init_let_ref %0 : $Klass
889+
// CHECK: Name: 'self'
890+
// CHECK: Root: %0 = argument of bb0 : $Klass
891+
// CHECK: end running test 1 of 1 on infer_through_end_init_let_ref: variable-name-inference with: @trace[0]
892+
sil [ossa] @infer_through_end_init_let_ref : $@convention(thin) (@owned Klass) -> @owned Klass {
893+
bb0(%0 : @owned $Klass):
894+
specify_test "variable-name-inference @trace[0]"
895+
debug_value %0 : $Klass, let, name "self", argno 2
896+
%1 = end_init_let_ref %0 : $Klass
897+
debug_value [trace] %1 : $Klass
898+
return %1 : $Klass
899+
}

0 commit comments

Comments
 (0)