summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add missing standard headers. Patch by Joerg Sonnenberger!Nick Lewycky2010-12-191-0/+1
| | | | llvm-svn: 122193
* Generalize the darwin wrapper hack to work with generic macho triples as ↵Chris Lattner2010-11-291-4/+7
| | | | | | well as darwin ones. llvm-svn: 120346
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* 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
* Discard metadata produced by LLVM 2.7. The value enumeration it usedDan Gohman2010-09-091-7/+7
| | | | | | | | | | | | | is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the function-local metadata counter wasn't reset between functions. The later problem breaks lazy deserialization, so instead of trying to emulate the old numbering, just drop the old metadata. The only in-tree use case is debug info with LTO, where the QOI loss is considered acceptable. llvm-svn: 113557
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-281-33/+0
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* Create the new linker type "linker_private_weak_def_auto".Bill Wendling2010-08-201-15/+16
| | | | | | | | | | | It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). llvm-svn: 111684
* avoid undefined behavior negating minint.Chris Lattner2010-08-031-2/+2
| | | | llvm-svn: 110117
* Make NamedMDNode not be a subclass of Value, and simplify the interfaceDan Gohman2010-07-211-19/+25
| | | | | | for creating and populating NamedMDNodes. llvm-svn: 109061
* Add some debug output to help diagnose PR7689.Dan Gohman2010-07-211-0/+3
| | | | llvm-svn: 109036
* Disallow null as a named metadata operand.Dan Gohman2010-07-211-6/+2
| | | | | | | | | | | Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). llvm-svn: 109028
* Add support for remapping metadata kind IDs when reading in aDan Gohman2010-07-201-3/+2
| | | | | | | | | | | | | bitcode file, so that two bitcode files where the same metadata kind name happens to have been assigned a different ID can still be linked together. Eliminate the restriction that metadata kind IDs can't be 0. Change MD_dbg from 1 to 0, because we can now, and because it's less mysterious that way. llvm-svn: 108939
* Implement the "linker_private_weak" linkage type. This will be used forBill Wendling2010-07-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. llvm-svn: 107433
* Revert r107205 and r107207.Bill Wendling2010-06-291-1/+0
| | | | llvm-svn: 107215
* Introducing the "linker_weak" linkage type. This will be used for Objective-CBill Wendling2010-06-291-0/+1
| | | | | | | | | | | | | | | | | | | metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". llvm-svn: 107205
* resort to ArgOperand APIGabor Greif2010-06-261-9/+8
| | | | llvm-svn: 106942
* Speedup bitcode writer. Do not walk all values for all functions to emit ↵Devang Patel2010-06-021-4/+3
| | | | | | function local metadata. In one testcase, probably worst case scenario, the 70x speed up is seen. llvm-svn: 105360
* Bitcode support for allocas with arbitrary array size types.Dan Gohman2010-05-281-0/+1
| | | | llvm-svn: 104915
* Don't flush the raw_ostream in llvm::WriteBitcodeToFile; it's atDan Gohman2010-05-271-3/+0
| | | | | | | | the wrong level. Clients which need to leave the stream open but which still require the bitcode bits to be on disk should call flush themselves. llvm-svn: 104885
* Don't special-case stdout in llvm::WriteBitcodeToFile; just considerDan Gohman2010-05-271-4/+0
| | | | | | | it to be the caller's responsibility to provide a stream in binary mode. This fixes a layering violation and avoids an outs() call. llvm-svn: 104878
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-161-7/+8
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* reapply r101434Gabor Greif2010-04-161-8/+7
| | | | | | | | | | | | | with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
* back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif2010-04-161-7/+8
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-151-8/+7
| | | | | | | | | | | | | with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-151-7/+8
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-151-8/+7
| | | | | | | | | | of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
* Add special case bitcode support for DebugLoc. This avoidsChris Lattner2010-04-031-9/+35
| | | | | | | | | | | | having the bitcode writer materialize mdnodes for all the debug location tuples when writing out the bc file and stores the information in a more compact form. For example, the -O0 -g bc file for combine.c in 176.gcc shrinks from 739392 to 512096 bytes. This concludes my planned short-term debug info work. llvm-svn: 100261
* Finally land the InvokeInst operand reordering.Gabor Greif2010-03-241-2/+2
| | | | | | | | | | | | I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. llvm-svn: 99399
* backing out r99170 because it still fails on clang-x86_64-darwin10-fntGabor Greif2010-03-221-2/+2
| | | | llvm-svn: 99171
* Now that hopefully all direct accesses to InvokeInst operands are fixedGabor Greif2010-03-221-2/+2
| | | | | | we can reapply the InvokeInst operand reordering patch. (see r98957). llvm-svn: 99170
* back out r98957, it broke ↵Gabor Greif2010-03-191-2/+2
| | | | | | http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite llvm-svn: 98958
* Recommit r80858 again (which has been backed out in r80871).Gabor Greif2010-03-191-2/+2
| | | | | | | | | | | This time I did a self-hosted bootstrap on Linux x86-64, with no problems. Let's see how darwin 64-bit self-hosting goes. At the first sign of failure I'll back this out. Maybe the valgrind bots give me a hint of what may be wrong (it at all). llvm-svn: 98957
* reapply r98656 unmodified, which exposed the asmprinter not Chris Lattner2010-03-161-1/+15
| | | | | | handling constant unions. llvm-svn: 98680
* Revert r98656, its breaking all over the place.Daniel Dunbar2010-03-161-15/+1
| | | | llvm-svn: 98662
* improve support for uniontype and ConstantUnion, patch by Tim Northover!Chris Lattner2010-03-161-1/+15
| | | | llvm-svn: 98656
* Add support for a union type in LLVM IR. Patch by Talin!Chris Lattner2010-02-121-1/+20
| | | | llvm-svn: 96011
* Also recognize armv6t2-* and armv5te-* triplets.Evan Cheng2010-02-121-5/+12
| | | | llvm-svn: 96008
* Add ARM bitcode file magic.Evan Cheng2010-02-121-3/+32
| | | | llvm-svn: 96006
* We were not writing bitcode for function-local metadata whose operands have ↵Victor Hernandez2010-01-291-2/+2
| | | | | | been erased (making it not have any more function-local operands) llvm-svn: 94842
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-1/+0
| | | | | | | | | | | | | | | | | | | | | Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
* Avoid modifying ValueEnumerator's MD ValueList by choosing which ↵Victor Hernandez2010-01-141-16/+8
| | | | | | function-local MD to write based on the function currently being written llvm-svn: 93441
* In WriteFunction(), write function-local metadata before we write the ↵Victor Hernandez2010-01-141-1/+3
| | | | | | instructions, so instruction's references to metadata are fully resolved by the time they get written. llvm-svn: 93403
* Fix comment typoVictor Hernandez2010-01-131-1/+1
| | | | llvm-svn: 93355
* Write function-local metadata as a metadata subblock of a funciton blockVictor Hernandez2010-01-131-4/+36
| | | | llvm-svn: 93339
* Revert 93270 pending investigation of how stray non-constant values end up ↵Victor Hernandez2010-01-131-5/+0
| | | | | | in ValueEnumerator's ValueList during WriteConstants() llvm-svn: 93289
* Make WriteConstants() more robust against stray values in ValueEnumerator's ↵Victor Hernandez2010-01-121-0/+5
| | | | | | ValueList llvm-svn: 93270
* Compute isFunctionLocal in MDNode ctor or via argument in new function ↵Victor Hernandez2010-01-101-1/+3
| | | | | | | | getWhenValsUnresolved(). Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue(). llvm-svn: 93108
* Use separate namespace for named metadata.Devang Patel2010-01-071-4/+3
| | | | llvm-svn: 92931
* Allow null to be an element of NamedMDNode. e.g. !llvm.stuff = !{!0, !1, null}Devang Patel2010-01-051-1/+1
| | | | llvm-svn: 92783
* rename "elements" of metadata to "operands". "Elements" areChris Lattner2009-12-311-8/+8
| | | | | | | things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
OpenPOWER on IntegriCloud