summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/LLVMContextImpl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix use after free when deleting attributes in a chained folding set.Benjamin Kramer2012-10-141-3/+5
| | | | | | Can't follow the intrusive linked list when the element is gone. llvm-svn: 165898
* Initial commit for the AttributesImpl class.Bill Wendling2012-09-261-0/+7
| | | | | | | | This opaque class will contain all of the attributes. All attribute queries will go through this object. This object will also be uniqued in the LLVMContext. Currently not used, so no implementation change. llvm-svn: 164722
* Efficient Constant Uniquing.Talin2012-02-051-3/+13
| | | | llvm-svn: 149848
* start the implementation of a new ConstantDataVector and ConstantDataArrayChris Lattner2012-01-231-0/+5
| | | | | | | classes, per PR1324. Not all of their helper functions are implemented, nothing creates them, and the rest of the compiler doesn't handle them yet. llvm-svn: 148741
* convert CAZ, UndefValue, and CPN to use DenseMap's again, this time withoutChris Lattner2012-01-231-3/+5
| | | | | | | | using OwningPtr. OwningPtr would barf when the densemap had to reallocate, which doesn't appear to happen on the regression test suite, but obviously happens in real life :) llvm-svn: 148700
* revert r148691 and 148693Chris Lattner2012-01-231-5/+3
| | | | llvm-svn: 148698
* switch UndefValue and ConstantPointerNull over to DenseMap's for uniquing.Chris Lattner2012-01-231-2/+4
| | | | llvm-svn: 148693
* Replace a use of ConstantUniqueMap for CAZ constants with a simple DenseMap.Chris Lattner2012-01-231-1/+1
| | | | | | | Now that the type system rewrite has landed, there is no need for its complexity and std::map'ness. llvm-svn: 148691
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+21
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* The powers that be have decided that LLVM IR should now support 16-bitDan Gohman2011-12-171-0/+1
| | | | | | | | "half precision" floating-point with a first-class type. This patch adds basic IR support (but not codegen support). llvm-svn: 146786
* bump pointer allocate LLVM IR types, since they are never deallocated.Chris Lattner2011-07-151-16/+0
| | | | llvm-svn: 135248
* stop leaking all named struct types with an empty name. ThanksChris Lattner2011-07-131-6/+7
| | | | | | to Benjamin Kramer for steering me in the right direction here. llvm-svn: 135031
* TypeMap had a destructor that destroyed the types it held. DenseMap did not, soNick Lewycky2011-07-121-14/+18
| | | | | | destroy those types in ~LLVMContext. llvm-svn: 134945
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-091-14/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
* More SmallVectorImpls.Dan Gohman2010-10-121-1/+1
| | | | llvm-svn: 116279
* Add X86 MMX type to bitcode and Type.Dale Johannesen2010-09-101-0/+1
| | | | | | | (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".) llvm-svn: 113618
* Clarify the ownership model of LLVMContext and Module. Namely, contexts ownOwen Anderson2010-09-081-0/+10
| | | | | | | modules are instantiated in them. If the context is deleted, all of its owned modules are also deleted. llvm-svn: 113374
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-281-3/+0
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* Fix a bunch of namespace polution.Dan Gohman2010-04-151-0/+1
| | | | llvm-svn: 101376
* give LLVMContext an inline asm diagnostic hook member.Chris Lattner2010-04-061-0/+3
| | | | llvm-svn: 100506
* Free all Constants in ~LLVMConstantImpl. We avoid assertion failuresJeffrey Yasskin2010-03-221-4/+25
| | | | | | | | | by dropping all references from all constants that can use other constants before trying to destroy any of them. I also had to free bugpoint's Module in ~BugDriver(). llvm-svn: 99160
* Re-add the Metadata.h include to LLVMContextImpl.h so that MDNode is completeJeffrey Yasskin2010-03-211-1/+0
| | | | | | | where FoldingSet<MDNode> is instantiated. Clang and MSVC complain; gcc doesn't. llvm-svn: 99147
* Move the LLVMContextImpl implementation into a .cpp file.Jeffrey Yasskin2010-03-211-0/+83
| | | | llvm-svn: 99146
* Factor some of the constants+context related code out into a separate ↵Owen Anderson2009-08-041-36/+0
| | | | | | | | header, to make LLVMContextImpl.h not hideous. Also, fix some MSVC compile errors. llvm-svn: 78115
* Privatize the last bit of Constant-creation state.Owen Anderson2009-08-041-0/+13
| | | | llvm-svn: 78097
* One two many newlines at end of file LLVMContextImpl.cppEdward O'Callaghan2009-08-021-1/+0
| | | | llvm-svn: 77911
* Fix no newline at end of LLVMContextImpl.cppEdward O'Callaghan2009-08-021-1/+2
| | | | llvm-svn: 77907
* Move the metadata constructors back to 2.5 syntax.Owen Anderson2009-07-311-48/+1
| | | | llvm-svn: 77733
* Move more code back to 2.5 APIs.Owen Anderson2009-07-301-15/+0
| | | | llvm-svn: 77635
* Rename MDNode.h header. It defines MDnode and other metadata classes.Devang Patel2009-07-281-1/+1
| | | | | | New name is Metadata.h. llvm-svn: 77370
* Return ConstantVector to 2.5 API.Owen Anderson2009-07-281-39/+0
| | | | llvm-svn: 77366
* Change ConstantArray to 2.5 API.Owen Anderson2009-07-281-111/+0
| | | | llvm-svn: 77347
* Move ConstantStruct back to 2.5 API.Owen Anderson2009-07-271-88/+1
| | | | llvm-svn: 77266
* Move ConstantFP construction back to the 2.5-ish API.Owen Anderson2009-07-271-35/+0
| | | | llvm-svn: 77247
* Remove Value::{isName, getNameRef}.Daniel Dunbar2009-07-251-2/+1
| | | | | | Also, change MDString to use a StringRef. llvm-svn: 77098
* Revert the ConstantInt constructors back to their 2.5 forms where possible, ↵Owen Anderson2009-07-241-372/+14
| | | | | | thanks to contexts-on-types. More to come. llvm-svn: 77011
* Privatize the ConstantVector tables.Owen Anderson2009-07-241-1/+55
| | | | llvm-svn: 76922
* Privatize the ConstantStruct table.Owen Anderson2009-07-231-0/+104
| | | | llvm-svn: 76912
* Convert StringMap to using StringRef for its APIs.Daniel Dunbar2009-07-231-3/+3
| | | | | | | | | | | | - Yay for '-'s and simplifications! - I kept StringMap::GetOrCreateValue for compatibility purposes, this can eventually go away. Likewise the StringMapEntry Create functions still follow the old style. - NIFC. llvm-svn: 76888
* MDStringDevang Patel2009-07-231-5/+6
| | | | | | | - Rename member function size(). New name is length(). - Store string beginning and length. Earlier it used to store string end. llvm-svn: 76841
* Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into ↵Devang Patel2009-07-231-1/+1
| | | | | | METADATA_BLOCK in bitcode file. llvm-svn: 76834
* Privatize the ConstantArray table.Owen Anderson2009-07-211-2/+129
| | | | llvm-svn: 76639
* Privatize the first of the value maps.Owen Anderson2009-07-211-0/+300
| | | | llvm-svn: 76634
* Privatize the MDNode uniquing table.Owen Anderson2009-07-161-0/+30
| | | | llvm-svn: 76126
* Privatize the MDString uniquing table.Owen Anderson2009-07-161-1/+20
| | | | llvm-svn: 76113
* Privatize the ConstantFP table. I'm on a roll!Owen Anderson2009-07-161-0/+33
| | | | llvm-svn: 76097
* Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a ↵Owen Anderson2009-07-161-0/+48
number of issues in our current context-passing stuff, which is also fixed here llvm-svn: 76089
OpenPOWER on IntegriCloud