Skip to content

Commit 673c03b

Browse files
committed
[JVPCloner] Handle move_value.
1 parent 0ea22e5 commit 673c03b

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

lib/SILOptimizer/Differentiation/JVPCloner.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,17 @@ class JVPCloner::Implementation final
807807
makeConcreteTangentValue(tanValCopy));
808808
}
809809

810+
CLONE_AND_EMIT_TANGENT(MoveValue, mvi) {
811+
auto &diffBuilder = getDifferentialBuilder();
812+
auto tan = getTangentValue(mvi->getOperand());
813+
auto tanVal = materializeTangent(tan, mvi->getLoc());
814+
auto tanValMove = diffBuilder.emitMoveValueOperation(
815+
mvi->getLoc(), tanVal, mvi->isLexical(), mvi->hasPointerEscape(),
816+
mvi->isFromVarDecl());
817+
setTangentValue(mvi->getParent(), mvi,
818+
makeConcreteTangentValue(tanValMove));
819+
}
820+
810821
/// Handle `load` instruction.
811822
/// Original: y = load x
812823
/// Tangent: tan[y] = load tan[x]

0 commit comments

Comments
 (0)