diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-emit.cpp | 5 | ||||
| -rw-r--r-- | source/slang/slang-ir-autodiff.cpp | 3 |
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. // |
