Make the AttrListPtr object a part of the LLVMContext.
authorBill Wendling <isanbard@gmail.com>
Tue, 20 Nov 2012 05:09:20 +0000 (05:09 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 20 Nov 2012 05:09:20 +0000 (05:09 +0000)
commit0976e00fd1cbf4128daeb72efd8957d00383fda9
tree8cc3415764d8f9ae20c32ef1a7edd9a519f5a118
parent9eecb35d6b3cd772b57620f37deb065b2f426aae
Make the AttrListPtr object a part of the LLVMContext.

When code deletes the context, the AttributeImpls that the AttrListPtr points to
are now invalid. Therefore, instead of keeping a separate managed static for the
AttrListPtrs that's reference counted, move it into the LLVMContext and delete
it when deleting the AttributeImpls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168354 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/Attributes.h
lib/AsmParser/LLParser.cpp
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/IPO/DeadArgumentElimination.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/Utils/BuildLibCalls.cpp
lib/VMCore/Attributes.cpp
lib/VMCore/AttributesImpl.h
lib/VMCore/LLVMContextImpl.cpp
lib/VMCore/LLVMContextImpl.h
utils/TableGen/IntrinsicEmitter.cpp