summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Linker/LinkModules.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Linke NamedMDNodes after linking global values as comment suggests.Devang Patel2011-08-041-5/+5
| | | | llvm-svn: 136909
* Migrate LLVM and Clang to use the new makeArrayRef(...) functions where ↵Frits van Bommel2011-07-181-1/+1
| | | | | | | | previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. llvm-svn: 135390
* Link NamedMDNode before linking function bodies.Devang Patel2011-07-141-5/+5
| | | | llvm-svn: 135204
* simplify this logic now that GlobalAlias::isDeclaration is fixed.Chris Lattner2011-07-141-4/+2
| | | | llvm-svn: 135183
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-091-1074/+742
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Set the unnamed_addr only when we're creating a new GV in the dest module.Bill Wendling2011-03-291-0/+1
| | | | llvm-svn: 128507
* Revert r128501. It caused test failures.Bill Wendling2011-03-291-1/+0
| | | | llvm-svn: 128506
* We need to copy over the unnamed_addr attribute.Bill Wendling2011-03-291-0/+1
| | | | llvm-svn: 128501
* Correctly merge available_externally and regular definitions when they haveRafael Espindola2011-02-011-2/+4
| | | | | | different visibilities. llvm-svn: 124650
* Allow unnamed_addr on declarations.Rafael Espindola2011-01-151-3/+7
| | | | llvm-svn: 123529
* Keep unnamed_addr when linking.Rafael Espindola2011-01-131-0/+2
| | | | llvm-svn: 123364
* Revamp the ValueMapper interfaces in a couple ways:Chris Lattner2011-01-081-29/+6
| | | | | | | | | | | | | | | | 1. Take a flags argument instead of a bool. This makes it more clear to the reader what it is used for. 2. Add a flag that says that "remapping a value not in the map is ok". 3. Reimplement MapValue to share a bunch of code and be a lot more efficient. For lookup failures, don't drop null values into the map. 4. Using the new flag a bunch of code can vaporize in LinkModules and LoopUnswitch, kill it. No functionality change. llvm-svn: 123058
* include the module identifier when emitting this warning, PR8865.Chris Lattner2010-12-301-4/+7
| | | | llvm-svn: 122637
* print the right string, thanks for Frits for noticing.Chris Lattner2010-12-301-1/+1
| | | | llvm-svn: 122636
* improve warning message to at least say what the triples are.Chris Lattner2010-12-291-1/+3
| | | | llvm-svn: 122632
* Fix whitespace.Michael J. Spencer2010-12-181-8/+8
| | | | llvm-svn: 122158
* Support/PathV1: Deprecate get{Basename,Dirname,Suffix}.Michael J. Spencer2010-12-181-4/+3
| | | | llvm-svn: 122157
* Revert r122143 through r122140, which collectively broke the LLVMC tests onOwen Anderson2010-12-181-11/+12
| | | | | | the buildbots. llvm-svn: 122149
* Fix whitespace.Michael J. Spencer2010-12-181-8/+8
| | | | llvm-svn: 122142
* Support/PathV1: Deprecate get{Basename,Dirname,Suffix}.Michael J. Spencer2010-12-181-4/+3
| | | | llvm-svn: 122141
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* Fix PR8300 by remembering to keep the bitcast in all cases.Rafael Espindola2010-10-191-9/+10
| | | | llvm-svn: 116788
* Revert "RequiresUnique" patch. This should be handled at a lower level.Bill Wendling2010-10-061-37/+7
| | | | llvm-svn: 115827
* Change RequiresMerge to RequiresUnique. It's a better description of what thisBill Wendling2010-10-061-7/+8
| | | | | | | | fix is trying to accomplish. This code could still use some polishing. llvm-svn: 115759
* If the destination module all ready has a copy of the global coming from theBill Wendling2010-10-061-7/+36
| | | | | | | | | | | | | source module *and* it must be merged (instead of simply replaced or appended to), then merge instead of replacing or adding another global. The ObjC __image_info section was being appended to because of this failure. This caused a crash because the linker expects the image info section to be a specific size. <rdar://problem/8198537> llvm-svn: 115753
* dead code patrolChris Lattner2010-09-011-9/+0
| | | | llvm-svn: 112713
* Reapply r112091 and r111922, support for metadata linking, with aDan Gohman2010-08-261-4/+23
| | | | | | | | | | | | | | fix: add a flag to MapValue and friends which indicates whether any module-level mappings are being made. In the common case of inlining, no module-level mappings are needed, so MapValue doesn't need to examine non-function-local metadata, which can be very expensive in the case of a large module with really deep metadata (e.g. a large C++ program compiled with -g). This flag is a little awkward; perhaps eventually it can be moved into the ClonedCodeInfo class. llvm-svn: 112190
* Revert r112091, "Remap metadata attached to instructions when remappingDaniel Dunbar2010-08-261-19/+1
| | | | | | individual ...", which depends on r111922, which I am reverting. llvm-svn: 112157
* Remap metadata attached to instructions when remapping individualDan Gohman2010-08-251-1/+19
| | | | | | instructions, not when remapping modules. llvm-svn: 112091
* - Add the LinkerPrivateWeakDefAutoLinkage to the Ada bindings.Bill Wendling2010-08-241-0/+6
| | | | | | - Support the LinkerWeak*Linkage types in llvm-nm and in LinkModules.cpp. llvm-svn: 111952
* Link NamedMDNodes after linking GlobalValues, so that MDNodesDan Gohman2010-08-241-3/+5
| | | | | | which reference GlobalValues are properly remapped. llvm-svn: 111949
* When linking NamedMDNodes, remap their operands.Dan Gohman2010-08-241-3/+5
| | | | llvm-svn: 111948
* Use MapValue in the Linker instead of having a private functionDan Gohman2010-08-241-104/+16
| | | | | | | | which does the same thing. This eliminates redundant code and handles MDNodes better. MDNode linking still doesn't fully work yet though. llvm-svn: 111941
* Don't cast away qualifiers with C-style casts.Dan Gohman2010-08-241-3/+3
| | | | llvm-svn: 111933
* Revert r111082. No warnings for this common pattern.Argyrios Kyrtzidis2010-08-151-2/+2
| | | | llvm-svn: 111102
* Add ATTRIBUTE_UNUSED to methods that are not supposed to be used.Argyrios Kyrtzidis2010-08-141-2/+2
| | | | llvm-svn: 111082
* Make NamedMDNode not be a subclass of Value, and simplify the interfaceDan Gohman2010-07-211-8/+4
| | | | | | for creating and populating NamedMDNodes. llvm-svn: 109061
* Revert r107205 and r107207.Bill Wendling2010-06-291-3/+0
| | | | llvm-svn: 107215
* Introducing the "linker_weak" linkage type. This will be used for Objective-CBill Wendling2010-06-291-0/+3
| | | | | | | | | | | | | | | | | | | 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
* Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move someDuncan Sands2010-02-161-1/+1
| | | | | | methods to try to have the type predicates be more logically positioned. llvm-svn: 96349
* Linker should not remap null operands of metadataVictor Hernandez2010-02-061-2/+6
| | | | llvm-svn: 95468
* Need to recurse for all operands of function-local metadata; and handle ↵Victor Hernandez2010-01-271-6/+3
| | | | | | Instructions (which map to themselves) llvm-svn: 94691
* merge two ifsChris Lattner2010-01-271-3/+1
| | | | llvm-svn: 94650
* Linker needs to do deep-copy of function-local metadata to update references ↵Victor Hernandez2010-01-271-1/+13
| | | | | | to function arguments llvm-svn: 94632
* Remove MetadataBase class because it is not adding significant value.Devang Patel2010-01-221-1/+1
| | | | llvm-svn: 94243
* Fixed linking of modules containing aliases to constant bitcasts. Existing ↵David Chisnall2010-01-091-5/+16
| | | | | | | | behaviour first tried to replace the aliases with the global that they aliased (rather than the bitcast), causing a crash on an assert because the types didn't match. When this was fixed, it then did the same thing creating the new alias (creating an alias with a different type to its aliasee). Linking modules containing aliases to GEPs is still not quite right. GEPs that are equivalent to bitcasts will be replaced by bitcasts, GEPs that are not will just break. Aliases to GEPs that are not equivalent to bitcasts are horribly broken anyway (it might be worth adding an assert when creating the alias to prevent these being created; they just cause problems later). llvm-svn: 93052
* Change errs() to dbgs().David Greene2010-01-051-6/+7
| | | | llvm-svn: 92628
* rename "elements" of metadata to "operands". "Elements" areChris Lattner2009-12-311-2/+2
| | | | | | | things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
* Remove dead store.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92192
* implement linker support for BlockAddress.Chris Lattner2009-11-011-17/+13
| | | | llvm-svn: 85700
OpenPOWER on IntegriCloud