From aa6814be1f7dea20597ae34d477e79e53d4a543f Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 25 Jan 2023 14:48:01 -0800 Subject: Cleanup IR representation of interface member derivative. (#2610) Co-authored-by: Yong He --- source/slang/slang-ir-check-differentiability.cpp | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'source/slang/slang-ir-check-differentiability.cpp') diff --git a/source/slang/slang-ir-check-differentiability.cpp b/source/slang/slang-ir-check-differentiability.cpp index f8d70c8ed..8cefa6a04 100644 --- a/source/slang/slang-ir-check-differentiability.cpp +++ b/source/slang/slang-ir-check-differentiability.cpp @@ -131,22 +131,10 @@ public: return true; if (sharedContext.differentiableInterfaceType && interfaceType == sharedContext.differentiableInterfaceType) return true; - auto dictDecor = interfaceType->findDecoration(); - if (!dictDecor) - return false; - for (auto child : dictDecor->getChildren()) - { - if (auto entry = as(child)) - { - if (entry->getOperand(0) == lookupInterfaceMethod->getRequirementKey()) - { - if (as(child) && level == DifferentiableLevel::Backward) - return true; - if (as(child) && level == DifferentiableLevel::Forward) - return true; - } - } - } + if (lookupInterfaceMethod->getRequirementKey()->findDecoration()) + return true; + if (lookupInterfaceMethod->getRequirementKey()->findDecoration()) + return level == DifferentiableLevel::Forward; } for (; func; func = func->parent) -- cgit v1.2.3