Skip to content

Commit f6657a1

Browse files
committed
Use human-readable scopes for adjoint buffer names
1 parent ce4acbd commit f6657a1

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

lib/SILOptimizer/Differentiation/PullbackCloner.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,10 +564,15 @@ class PullbackCloner::Implementation final
564564
bufType, loc, /*zeroInitialize*/ true,
565565
debugInfo.transform(
566566
[&](AdjointValue::DebugInfo di) {
567+
llvm::raw_svector_ostream adjNameStream(adjName);
567568
SILDebugVariable &dv = di.second;
568569
dv.ArgNo = 0;
569-
llvm::raw_svector_ostream(adjName) << "adjoint of '" << dv.Name
570-
<< "' in bb" << origBB->getDebugID();
570+
adjNameStream << "derivative of '" << dv.Name << "'";
571+
if (SILDebugLocation origBBLoc = origBB->front().getDebugLocation()) {
572+
adjNameStream << " in scope at ";
573+
origBBLoc.getLocation().print(adjNameStream, getASTContext().SourceMgr);
574+
}
575+
adjNameStream << " (scope #" << origBB->getDebugID() << ")";
571576
dv.Name = adjName;
572577
return dv;
573578
}));

test/AutoDiff/compiler_crashers_fixed/58660-conflicting-debug-info-inlining.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct MyModel: Differentiable {
4444
// CHECK-LABEL: // pullback of MyModel.member4()
4545
// CHECK-NOT: debug_value %{{.*}} : $MyModel.TangentVector, var, name %{{.*}}, argno 1, implicit, scope
4646
// CHECK: bb1(%{{.*}} : $_AD__$s4main7MyModelV7member4yyF_bb1__PB__src_0_wrt_0):
47-
// CHECK: debug_value %{{.*}} : $MyModel.TangentVector, var, name "adjoint of 'self' in bb1", implicit, scope
47+
// CHECK: debug_value %{{.*}} : $MyModel.TangentVector, var, name "derivative of 'self' in scope at {{.*}} (scope #1)", implicit, scope
4848
// Must be a differentiable type.
4949
var localVar: Float = 0
5050

test/AutoDiff/compiler_crashers_fixed/issue-62608-conflicting-debug-info.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public func pullback<T>(
3737
}
3838

3939
// CHECK-LABEL: sil private @$s4main19testUpdateByCallingyyKF8fOfArrayL_5arraySdSaySdG_tFySdzcfU_TJpSUpSr :
40-
// CHECK: alloc_stack $Double, var, name "adjoint of 'element' in bb3"
41-
// CHECK: debug_value %{{.*}} : $Builtin.FPIEEE64, var, (name "adjoint of 'element' in bb1"
40+
// CHECK: alloc_stack $Double, var, name "derivative of 'element' in scope at {{.*}} (scope #3)"
41+
// CHECK: debug_value %{{.*}} : $Builtin.FPIEEE64, var, (name "derivative of 'element' in scope at {{.*}} (scope #1)"
4242

4343
public extension Array where Element: Differentiable {
4444
@inlinable

0 commit comments

Comments
 (0)