OSDN Git Service

Free the constants that have no uses in ~LLVMContext.
authorTorok Edwin <edwintorok@gmail.com>
Mon, 31 Aug 2009 16:14:59 +0000 (16:14 +0000)
committerTorok Edwin <edwintorok@gmail.com>
Mon, 31 Aug 2009 16:14:59 +0000 (16:14 +0000)
commit2cd5155c0e8f2448dbdbc9c9cd468e589f9745e9
tree6cc085a5fc665699d3fac6ba5f95f02f9357a42c
parent72ddf7b555a5a32c6f2330f9733bb8d036f971eb
Free the constants that have no uses in ~LLVMContext.
This fixes leaks from LLVMContext in multithreaded apps.
Since constants are only deleted if they have no uses, it is safe to not delete
a Module on shutdown, as many single-threaded tools do.
Multithreaded apps should however delete the Module before destroying the
Context to ensure that there are no leaks (assuming they use a different context
for each thread).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80590 91177308-0d34-0410-b5e6-96231b3b80d8
lib/VMCore/ConstantsContext.h
lib/VMCore/LLVMContextImpl.h
lib/VMCore/Type.cpp
lib/VMCore/TypesContext.h