diff options
| author | Yong He <yonghe@outlook.com> | 2023-04-26 17:37:04 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-26 17:37:04 -0700 |
| commit | fc54adee1f7f0ba18591fc84ce5d51ac23afa954 (patch) | |
| tree | 4727ed6109ac50e95c49aadcebc0fb8b95495739 /source/slang/slang-ir-autodiff.cpp | |
| parent | 61eb17b0b556ccc06f65f921bb0a4ea2784c4e20 (diff) | |
Autodiff support for dynamically dispatched generic method. (#2846)
* Autodiff support for dynamically dispatched generic method.
* Fix.
* Support dynamically dispatched generic type.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-autodiff.cpp')
| -rw-r--r-- | source/slang/slang-ir-autodiff.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp index 4188d2ec8..4e33a01ab 100644 --- a/source/slang/slang-ir-autodiff.cpp +++ b/source/slang/slang-ir-autodiff.cpp @@ -458,6 +458,18 @@ IRInst* DifferentiableTypeConformanceContext::getDiffTypeWitnessFromPairType(IRB return _getDiffTypeWitnessFromPairType(sharedContext, builder, type); } +IRInst* DifferentiableTypeConformanceContext::getDiffZeroMethodFromPairType(IRBuilder* builder, IRDifferentialPairTypeBase* type) +{ + auto witnessTable = type->getWitness(); + return _lookupWitness(builder, witnessTable, sharedContext->zeroMethodStructKey); +} + +IRInst* DifferentiableTypeConformanceContext::getDiffAddMethodFromPairType(IRBuilder* builder, IRDifferentialPairTypeBase* type) +{ + auto witnessTable = type->getWitness(); + return _lookupWitness(builder, witnessTable, sharedContext->addMethodStructKey); +} + void DifferentiableTypeConformanceContext::buildGlobalWitnessDictionary() { for (auto globalInst : sharedContext->moduleInst->getChildren()) |
