From 8da47c460df01fad6f1d0614210a770f4781edb1 Mon Sep 17 00:00:00 2001 From: Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> Date: Sat, 25 Jun 2022 15:45:34 -0400 Subject: Added basic auto-diff capabilities for local load/store and simple arithmetic. Also added type-checking during the semantic stage. (#2303) * Added JVPTranscriber to handle differentiation of load, store, var, param and return instructions, as well as conversion of data and function types * Changed class names to be more in line with convention. Added correct type checking for __jvp() and verified that simple calls with only loads and stores are processed correctly * Added logic to differentiate basic arithmetic and literals inside IRConstruct and fixed the way parameters are differentiated Co-authored-by: Yong He --- source/slang/slang-ir-diff-call.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/slang/slang-ir-diff-call.cpp') diff --git a/source/slang/slang-ir-diff-call.cpp b/source/slang/slang-ir-diff-call.cpp index 76ffe3c8b..92044be3c 100644 --- a/source/slang/slang-ir-diff-call.cpp +++ b/source/slang/slang-ir-diff-call.cpp @@ -34,10 +34,10 @@ struct DerivativeCallProcessContext do { auto nextChild = child->getNextInst(); - // Look for IRJVPDerivativeOf - if (auto derivOf = as(child)) + // Look for IRJVPDifferentiate + if (auto derivOf = as(child)) { - processDerivativeOf(derivOf); + processDifferentiate(derivOf); } child = nextChild; } @@ -50,7 +50,7 @@ struct DerivativeCallProcessContext // Perform forward-mode automatic differentiation on // the intstructions. - void processDerivativeOf(IRJVPDerivativeOf* derivOfInst) + void processDifferentiate(IRJVPDifferentiate* derivOfInst) { IRFunc* jvpFunc = nullptr; -- cgit v1.2.3