From 083ce459c79d6c7802e09c217c3c228b96891a59 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 19 Nov 2004 16:39:04 +0000 Subject: [PATCH] Add static functions to clear singleton maps. Patch contributed by Morten Ofstad! llvm-svn: 17994 --- llvm/include/llvm/Constant.h | 5 +++++ llvm/include/llvm/Type.h | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/Constant.h b/llvm/include/llvm/Constant.h index 789fe7028180..0d098a60745b 100644 --- a/llvm/include/llvm/Constant.h +++ b/llvm/include/llvm/Constant.h @@ -92,6 +92,11 @@ public: "implemented for all constants that have operands!"); assert(0 && "Constants that do not have operands cannot be using 'From'!"); } + + /// clearAllValueMaps - This method frees all internal memory used by the + /// constant subsystem, which can be used in environments where this memory + /// is otherwise reported as a leak. + static void clearAllValueMaps(); }; } // End llvm namespace diff --git a/llvm/include/llvm/Type.h b/llvm/include/llvm/Type.h index 9602fd5a57ab..18b8adb0cee0 100644 --- a/llvm/include/llvm/Type.h +++ b/llvm/include/llvm/Type.h @@ -288,7 +288,7 @@ public: } void dropRef() const { - assert(isAbstract() && "Cannot drop a refernce to a non-abstract type!"); + assert(isAbstract() && "Cannot drop a reference to a non-abstract type!"); assert(RefCount && "No objects are currently referencing this object!"); // If this is the last PATypeHolder using this object, and there are no @@ -296,6 +296,12 @@ public: if (--RefCount == 0) RefCountIsZero(); } + + /// clearAllTypeMaps - This method frees all internal memory used by the + /// type subsystem, which can be used in environments where this memory is + /// otherwise reported as a leak. + static void clearAllTypeMaps(); + private: /// isSizedDerivedType - Derived types like structures and arrays are sized /// iff all of the members of the type are sized as well. Since asking for