summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-emit.cpp5
-rw-r--r--source/slang/slang-ir-autodiff.cpp3
2 files changed, 4 insertions, 4 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index b690b7c38..417bbf200 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -292,7 +292,6 @@ void calcRequiredLoweringPassSet(RequiredLoweringPassSet& result, CodeGenContext
case kIROp_BackwardDifferentiate:
case kIROp_ForwardDifferentiate:
case kIROp_MakeDifferentialPairUserCode:
- case kIROp_DerivativeMemberDecoration:
result.autodiff = true;
break;
case kIROp_VerticesType:
@@ -709,6 +708,10 @@ Result linkAndOptimizeIR(
if (requiredLoweringPassSet.autodiff)
finalizeAutoDiffPass(targetProgram, irModule);
+ // Remove auto-diff related decorations.
+ // We may have an autodiff decoration regardless of if autodiff is being used.
+ stripAutoDiffDecorations(irModule);
+
finalizeSpecialization(irModule);
requiredLoweringPassSet = {};
diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp
index 14b53c0e0..6b275179c 100644
--- a/source/slang/slang-ir-autodiff.cpp
+++ b/source/slang/slang-ir-autodiff.cpp
@@ -2072,9 +2072,6 @@ bool finalizeAutoDiffPass(TargetProgram* target, IRModule* module)
stripNoDiffTypeAttribute(module);
- // Remove auto-diff related decorations.
- stripAutoDiffDecorations(module);
-
// Remove keep-alive decorations from null-differential type
// so it can be DCE'd if unused.
//