diff options
| author | Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> | 2024-09-26 00:10:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-26 00:10:45 -0400 |
| commit | 7398e1e09312ed4e19195e060de9a2c9a073fcc1 (patch) | |
| tree | d5622ffa3095e156f9ada816146d260137145cfd /source | |
| parent | d752482c9223eef8deebb0d8f0b13ce9679781c4 (diff) | |
Always run AD cleanup pass. (#5157)
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-emit.cpp | 10 | ||||
| -rw-r--r-- | source/slang/slang-ir-autodiff.cpp | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index 71ef7ee33..a29142ba1 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -834,12 +834,10 @@ Result linkAndOptimizeIR( if (codeGenContext->shouldReportCheckpointIntermediates()) reportCheckpointIntermediates(codeGenContext, sink, irModule); - 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); + // Finalization is always run so AD-related instructions can be removed, + // even the AD pass itself is not run. + // + finalizeAutoDiffPass(targetProgram, irModule); finalizeSpecialization(irModule); diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp index 94a605a68..6c729ea63 100644 --- a/source/slang/slang-ir-autodiff.cpp +++ b/source/slang/slang-ir-autodiff.cpp @@ -2559,6 +2559,8 @@ bool finalizeAutoDiffPass(TargetProgram* target, IRModule* module) stripNoDiffTypeAttribute(module); + stripAutoDiffDecorations(module); + return modified; } |
