diff options
| author | Yong He <yonghe@outlook.com> | 2023-02-16 16:44:04 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-16 16:44:04 -0800 |
| commit | 245466d89cfe54b78da486f06d470bc6daaf4625 (patch) | |
| tree | 522e0af1a9d2756182e143cdc85031ea1bbc2aa0 /source/slang/slang-ir-autodiff.cpp | |
| parent | 4c4826d47eeef4675daae4ae53ff76f4d5ebd84a (diff) | |
Remove `SharedIRBuilder`. (#2657)
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 | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp index 2ce5a48f7..1232cf50d 100644 --- a/source/slang/slang-ir-autodiff.cpp +++ b/source/slang/slang-ir-autodiff.cpp @@ -214,7 +214,7 @@ IRStructKey* DifferentialPairTypeBuilder::_getOrCreateDiffStructKey() { if (!this->globalDiffKey) { - IRBuilder builder(sharedContext->sharedBuilder); + IRBuilder builder(sharedContext->moduleInst); // Insert directly at top level (skip any generic scopes etc.) builder.setInsertInto(sharedContext->moduleInst); @@ -230,7 +230,7 @@ IRStructKey* DifferentialPairTypeBuilder::_getOrCreatePrimalStructKey() if (!this->globalPrimalKey) { // Insert directly at top level (skip any generic scopes etc.) - IRBuilder builder(sharedContext->sharedBuilder); + IRBuilder builder(sharedContext->moduleInst); builder.setInsertInto(sharedContext->moduleInst); this->globalPrimalKey = builder.createStructKey(); @@ -252,7 +252,7 @@ IRInst* DifferentialPairTypeBuilder::_createDiffPairType(IRType* origBaseType, I break; } - IRBuilder builder(sharedContext->sharedBuilder); + IRBuilder builder(sharedContext->moduleInst); builder.setInsertBefore(diffType); auto pairStructType = builder.createStructType(); @@ -537,8 +537,6 @@ struct StripNoDiffTypeAttributePass : InstPassBase } } }); - sharedBuilderStorage.init(module); - sharedBuilderStorage.deduplicateAndRebuildGlobalNumberingMap(); } }; @@ -576,7 +574,7 @@ struct AutoDiffPass : public InstPassBase // TODO(sai): Move this call. forwardTranscriber.differentiableTypeConformanceContext.buildGlobalWitnessDictionary(); - IRBuilder builderStorage(&sharedBuilderStorage); + IRBuilder builderStorage(module); IRBuilder* builder = &builderStorage; // Process all ForwardDifferentiate and BackwardDifferentiate instructions by @@ -808,7 +806,6 @@ struct AutoDiffPass : public InstPassBase if (lowerIntermediateContextType(builder)) { - sharedBuilderStorage.deduplicateAndRebuildGlobalNumberingMap(); hasChanges = true; } @@ -817,7 +814,7 @@ struct AutoDiffPass : public InstPassBase IRStringLit* getDerivativeFuncName(IRInst* func, const char* postFix) { - IRBuilder builder(&sharedBuilderStorage); + IRBuilder builder(autodiffContext->moduleInst); builder.setInsertBefore(func); IRStringLit* name = nullptr; @@ -846,23 +843,17 @@ struct AutoDiffPass : public InstPassBase AutoDiffPass(AutoDiffSharedContext* context, DiagnosticSink* sink) : InstPassBase(context->moduleInst->getModule()), sink(sink), - forwardTranscriber(context, &sharedBuilderStorage, sink), - backwardPrimalTranscriber(context, &sharedBuilderStorage, sink), - backwardPropagateTranscriber(context, &sharedBuilderStorage, sink), - backwardTranscriber(context, &sharedBuilderStorage, sink), + forwardTranscriber(context, sink), + backwardPrimalTranscriber(context, sink), + backwardPropagateTranscriber(context, sink), + backwardTranscriber(context, sink), pairBuilderStorage(context), autodiffContext(context) { - // We start by initializing our shared IR building state, // since we will re-use that state for any code we // generate along the way. // - sharedBuilderStorage.init(module); - sharedBuilderStorage.deduplicateAndRebuildGlobalNumberingMap(); - - context->sharedBuilder = &sharedBuilderStorage; - forwardTranscriber.pairBuilder = &pairBuilderStorage; backwardPrimalTranscriber.pairBuilder = &pairBuilderStorage; backwardPropagateTranscriber.pairBuilder = &pairBuilderStorage; @@ -924,12 +915,6 @@ bool finalizeAutoDiffPass(IRModule* module) // Create shared context for all auto-diff related passes AutoDiffSharedContext autodiffContext(module->getModuleInst()); - SharedIRBuilder sharedBuilder; - sharedBuilder.init(module); - sharedBuilder.deduplicateAndRebuildGlobalNumberingMap(); - - autodiffContext.sharedBuilder = &sharedBuilder; - // Replaces IRDifferentialPairType with an auto-generated struct, // IRDifferentialPairGetDifferential with 'differential' field access, // IRDifferentialPairGetPrimal with 'primal' field access, and |
