From baf06088dff0b961843ad03efd75ff009befec5c Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 30 Oct 2018 15:31:27 -0400 Subject: Feature/serial string pool refactor (#702) * Ongoing serialization for full debug work. * Use StringRepresentationCache and StringSlicePool for serialization. * Removed some older path handling for serialization which had some wrong underlying assumptions. * Builds with refactored use of SubStringPool in ir-serialize. * Removed prohibitedCategories because not used anywhere. * Add category 'compatibility-issue' * Remove work in progress on debug serialization. --- source/slang/ir.h | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) (limited to 'source/slang/ir.h') diff --git a/source/slang/ir.h b/source/slang/ir.h index e54a32043..41c9ab6ab 100644 --- a/source/slang/ir.h +++ b/source/slang/ir.h @@ -12,6 +12,7 @@ #include "source-loc.h" #include "../core/slang-memory-arena.h" +#include "../core/slang-object-scope-manager.h" #include "type-system-shared.h" @@ -1073,32 +1074,15 @@ struct IRModule : RefObject IRInstListBase getGlobalInsts() const { return getModuleInst()->getChildren(); } - void addRefObjectToFree(RefObject* obj) - { - if (obj) - { - obj->addReference(); - m_refObjectsToFree.Add(obj); - } - } - + /// Get the object scope manager + SLANG_FORCE_INLINE ObjectScopeManager* getObjectScopeManager() { return &m_objectScopeManager; } + /// Ctor IRModule(): memoryArena(kMemoryArenaBlockSize) { } - ~IRModule() - { - // Release all ref objects - for (RefObject* ptr: m_refObjectsToFree) - { - ptr->releaseReference(); - } - // Clear any memory too - m_refObjectsToFree = List(); - } - MemoryArena memoryArena; // The compilation session in use. @@ -1106,7 +1090,8 @@ struct IRModule : RefObject IRModuleInst* moduleInst; protected: - List m_refObjectsToFree; + + ObjectScopeManager m_objectScopeManager; }; void printSlangIRAssembly(StringBuilder& builder, IRModule* module); -- cgit v1.2.3