summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Metadata.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert r97788 because it broke test/FrontendC/2010-02-16-DbgVarScope.c.Jeffrey Yasskin2010-03-051-8/+8
| | | | llvm-svn: 97792
* Free MDNodes when the LLVMContext is destroyed. Leak found by Valgrind.Jeffrey Yasskin2010-03-051-8/+8
| | | | llvm-svn: 97788
* Destroy MDNodes gracefully while deleting llvm context.Devang Patel2010-02-181-0/+7
| | | | llvm-svn: 96609
* Add MDNode::getIfExists(), an efficient way to determine if a value is used ↵Victor Hernandez2010-01-261-28/+40
| | | | | | by metadata (since metadata does not appear in a value's use list) llvm-svn: 94492
* Remove MetadataBase class because it is not adding significant value.Devang Patel2010-01-221-2/+2
| | | | llvm-svn: 94243
* tidy upChris Lattner2010-01-211-9/+16
| | | | llvm-svn: 94100
* Fix if/else brackets; getFunctionForValue() is to be called for non-metadata ↵Victor Hernandez2010-01-201-1/+3
| | | | | | values llvm-svn: 93984
* Fix the conditions to unambiguously show the logic they represent. This is theChandler Carruth2010-01-201-3/+3
| | | | | | | logic enforced in the test case as well, so hopefully it is correct. Please review Victor. llvm-svn: 93980
* Refactor common parts of MDNode::getFunction() and assertLocalFunction() ↵Victor Hernandez2010-01-201-33/+23
| | | | | | into getFunctionForValue() llvm-svn: 93977
* Add comment that MDNode::getFunction() is not to be used by ↵Victor Hernandez2010-01-181-1/+2
| | | | | | performance-critical code (currently only used by AsmWriter) llvm-svn: 93802
* Simplify MDNode::getFunction() and assertLocalFunction() by avoiding extra ↵Victor Hernandez2010-01-181-46/+39
| | | | | | Function* variable and smallptrset since function-local metadata cannot be cyclic llvm-svn: 93762
* In debug builds, assert that function-local metadata has only 1 parent functionVictor Hernandez2010-01-141-1/+30
| | | | llvm-svn: 93449
* Add MDNode::getFunction(), which figures out the metadata's function, if it ↵Victor Hernandez2010-01-141-0/+34
| | | | | | has function that it is local to. llvm-svn: 93400
* Introduce Twine::toStringRef, a variant of toVector which avoids the copy if theBenjamin Kramer2010-01-131-5/+1
| | | | | | | twine can be represented as a single StringRef. Use the new methode to simplify some twine users. llvm-svn: 93317
* Use Twine, instead of StringRef, for consistency.Devang Patel2010-01-121-5/+18
| | | | llvm-svn: 93249
* Use ilist_tratis to autoinsert and remove NamedMDNode from MDSymbolTable.Devang Patel2010-01-121-6/+25
| | | | llvm-svn: 93247
* Suppress a warning on gcc 4.4.Mikhail Glushenkov2010-01-101-26/+26
| | | | | warning: suggest parentheses around ‘&&’ within ‘||’. llvm-svn: 93121
* Compute isFunctionLocal in MDNode ctor or via argument in new function ↵Victor Hernandez2010-01-101-3/+32
| | | | | | | | getWhenValsUnresolved(). Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue(). llvm-svn: 93108
* Derive NamedMDNode from Value.Devang Patel2010-01-091-1/+1
| | | | llvm-svn: 93032
* Use separate namespace for named metadata.Devang Patel2010-01-071-3/+15
| | | | llvm-svn: 92931
* NamedMDNode is a collection MDNodes.Devang Patel2010-01-051-11/+11
| | | | llvm-svn: 92761
* rename "elements" of metadata to "operands". "Elements" areChris Lattner2009-12-311-35/+35
| | | | | | | things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
* Optimize MDNode to coallocate the operand list immediatelyChris Lattner2009-12-311-35/+49
| | | | | | | | | | | | | after the MDNode in memory. This eliminates the operands pointer and saves a new[] per node. Note that the code in DIDerivedType::replaceAllUsesWith is wrong and quite scary. A MDNode should not be RAUW'd with something else: this changes all uses of the mdnode, which may not be debug info related! Debug info should use something non-mdnode for declarations. llvm-svn: 92321
* do not bother reuniquing mdnodes whose operands drop to null. DoingChris Lattner2009-12-301-9/+27
| | | | | | | | | | | so can be a huge performance issue when tearing down modules and mdnodes are not guaranteed to be unique anyway. This speeds up: $ time ~/llvm/Release/bin/clang gcc.c -w -S -g from 72 to 35s, where gcc.c is from: http://people.csail.mit.edu/smcc/projects/single-file-programs/ llvm-svn: 92315
* Final step in the metadata API restructuring: move the Chris Lattner2009-12-291-147/+73
| | | | | | | | getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. llvm-svn: 92259
* privatize another interface.Chris Lattner2009-12-291-1/+4
| | | | llvm-svn: 92255
* the only call to this function (from clang) has been removed, zap it.Chris Lattner2009-12-291-22/+0
| | | | llvm-svn: 92254
* remove some unneeded Metadata interfaces.Chris Lattner2009-12-291-41/+7
| | | | llvm-svn: 92252
* When doing v1->RAUW(v2), don't do anything to metadata. We don't knowChris Lattner2009-12-291-16/+0
| | | | | | | | why one was replaced with the other. Even in the specific case of debug information, it doesn't make sense to transfer the location over, this will just result in jumbled loc info. llvm-svn: 92241
* sink the Instruction::HasMetadata bit into SubclassData.Chris Lattner2009-12-291-5/+5
| | | | llvm-svn: 92240
* add a layer of accessors around the Value::SubClassData member, and use Chris Lattner2009-12-291-1/+1
| | | | | | | | | | | a convention (shadowing the setter with private forwarding function) to prevent subclasses from accidentally using it. This exposed some bogosity in ConstantExprs, which was propaging the opcode of the constant expr into the NUW/NSW/Exact field in the getWithOperands/getWithOperandReplaced methods. llvm-svn: 92239
* This is a major cleanup of the instruction metadata interfaces thatChris Lattner2009-12-281-120/+128
| | | | | | | | | | | | | | | | | | | | | | I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. llvm-svn: 92235
* rename getMDKind -> getMDKindID, make it autoinsert if an MD KindChris Lattner2009-12-281-33/+11
| | | | | | | doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. llvm-svn: 92225
* rename getHandlerNames to getMDKindNames, simplify its interfaceChris Lattner2009-12-281-8/+8
| | | | | | and simplify all the clients that use it. llvm-svn: 92224
* tidy up and delete a dead smallvector.Chris Lattner2009-12-281-10/+5
| | | | llvm-svn: 92223
* avoid a completely unneeded linear walk.Chris Lattner2009-12-281-12/+9
| | | | llvm-svn: 92221
* Eliminate two bits of ugliness in MDNode::replaceElement:Chris Lattner2009-12-281-26/+13
| | | | | | | eliminate the temporary smallvector, and only do FindNodeOrInsertPos twice if the first one succeeds and we delete a node. llvm-svn: 92220
* rearrange some methods, no functionality change.Chris Lattner2009-12-281-13/+14
| | | | llvm-svn: 92219
* avoid temporary CallbackVH's.Chris Lattner2009-12-281-4/+8
| | | | llvm-svn: 92218
* Rewrite the function-local validation logic for MDNodes (most of r91708).Chris Lattner2009-12-281-40/+0
| | | | | | | | Among other benefits, this doesn't leak the SmallPtrSet, has the verifier code in the verifier pass, actually does the verification at the end, and is considerably simpler. llvm-svn: 92217
* rename MDNode instance variables to something meaningful.Chris Lattner2009-12-281-9/+9
| | | | llvm-svn: 92216
* snip one more #include from Metadata.hChris Lattner2009-12-281-0/+4
| | | | llvm-svn: 92214
* prune some #includesChris Lattner2009-12-281-1/+2
| | | | llvm-svn: 92212
* change the strange MetadataContext::getMDs function to expose lessChris Lattner2009-12-281-3/+5
| | | | | | irrelevant internal implementation details to clients. llvm-svn: 92210
* change NamedMDNode to use a pimpl for its operand list insteadChris Lattner2009-12-281-5/+32
| | | | | | of making it a declared part of the value. llvm-svn: 92209
* move ElementVH out of the MDNode class into the MDNode.cpp file. AmongChris Lattner2009-12-281-4/+42
| | | | | | | other things, this avoids vtable and rtti data for it being splatted in every translation unit that uses it. llvm-svn: 92207
* Fix gcc warning.Eli Friedman2009-12-181-1/+2
| | | | llvm-svn: 91715
* Formalize MDNode's function-localness:Victor Hernandez2009-12-181-6/+44
| | | | | | | | | | | - an MDNode is designated as function-local when created, and continues to be even if its operands are modified not to refer to function-local IR - function-localness is designated via lowest bit in SubclassData - getLocalFunction() descends MDNode tree to see if it is consistently function-local Add verification of MDNodes to checks that MDNodes are consistently function-local. Update AsmWriter to use isFunctionLocal(). llvm-svn: 91708
* Use different name for argument and fieldVictor Hernandez2009-12-161-2/+2
| | | | llvm-svn: 91524
* MDNodes that refer to an instruction are local to a function; in that case, ↵Victor Hernandez2009-12-161-3/+8
| | | | | | explicitly keep track of the function they are local to llvm-svn: 91497
OpenPOWER on IntegriCloud