aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Linker/LinkModules.cpp
Commit message (Collapse)AuthorAgeFilesLines
* silence warningsChris Lattner2006-11-091-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31587 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding dllimport, dllexport and external weak linkage types.Anton Korobeynikov2006-09-141-11/+31
| | | | | | | | | | DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30374 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate some ugly code, using ConstantExpr::getWithOperands instead.Chris Lattner2006-07-141-51/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29149 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix Regression/Linker/2006-06-15-GlobalVarAnment.llChris Lattner2006-06-161-5/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28812 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix linking of inline asm objects.Chris Lattner2006-06-011-5/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28640 91177308-0d34-0410-b5e6-96231b3b80d8
* Add shufflevector supportChris Lattner2006-04-081-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27515 91177308-0d34-0410-b5e6-96231b3b80d8
* Add code to RemapOperand() to handle Instruction::ExtractElement andEvan Cheng2006-04-071-0/+12
| | | | | | | Instruction::InsertElement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27477 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename methodChris Lattner2006-01-241-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25571 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for linking inline asmChris Lattner2006-01-231-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25560 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for ConstantPacked to the linkerChris Lattner2006-01-191-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25467 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test/Regression/Linker/2005-12-06-AppendingZeroLengthArrays.ll andChris Lattner2005-12-061-0/+2
| | | | | | | | PR662. Thanks to Markus for providing me with a ton of files to reproduce the problem! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24619 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR495:Reid Spencer2005-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | Get rid of the difference between file paths and directory paths. The Path class now simply stores a path that can refer to either a file or a directory. This required various changes in the implementation and interface of the class with the corresponding impact to its users. Doxygen comments were also updated to reflect these changes. Interface changes are: appendDirectory -> appendComponent appendFile -> appendComponent elideDirectory -> eraseComponent elideFile -> eraseComponent elideSuffix -> eraseSuffix renameFile -> rename setDirectory -> set setFile -> set Changes pass Dejagnu and llvm-test/SingleSource tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22349 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve CC's when linking modulesChris Lattner2005-05-091-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21799 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceMisha Brukman2005-04-211-18/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21422 91177308-0d34-0410-b5e6-96231b3b80d8
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-6/+6
| | | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate silly warnings from the linker of the form:Chris Lattner2005-02-191-12/+0
| | | | | | | | | WARNING: Type conflict between types named 'union.._604.'. Src=' %union.._604.'. Dest=' %union.._604.' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20252 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow globals to be of different const'nesses when we link.Chris Lattner2005-02-121-8/+2
| | | | | | | | This finally resolves PR502, PR450, and test/Regression/Linker/2005-02-12-ConstantGlobals{,-2}.ll correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20135 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LinkModules a static member functionReid Spencer2004-12-131-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18859 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to link the target-triple as well, so it ends up in the .llvm.bc fileChris Lattner2004-12-101-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18774 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert this disgusting hack, John has a much nicer solutionChris Lattner2004-12-081-23/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18611 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a disgusting hack to work around a libstdc++ issue. This code shouldChris Lattner2004-12-081-0/+23
| | | | | | | be removed when PR400 is resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18610 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix linkage of mismatched weak globals. This unbreaks 300.twolfChris Lattner2004-12-041-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18494 91177308-0d34-0410-b5e6-96231b3b80d8
* Significantly rework linker support for global variables, allowing it toChris Lattner2004-12-031-84/+101
| | | | | | | | | | correctly link globals whose LLVM types do not match. This fixes several of the F2C SPEC FP benchmarks, which were failing this due to the implementation of common blocks used by f2c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18465 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove blank comment lines for uniformity.Reid Spencer2004-11-251-25/+2
| | | | | | | Make sure lines don't exceed 80 cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18242 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't increment a dead iteratorChris Lattner2004-11-161-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17904 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify the remapper by only needing one map, since the body of the functionsChris Lattner2004-11-161-43/+31
| | | | | | | being linked do not need to be remapped any longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17900 91177308-0d34-0410-b5e6-96231b3b80d8
* Take advantage of the fact that we are allowed to clobber the input moduleChris Lattner2004-11-161-26/+8
| | | | | | | | | | | | | | | by splicing function bodies from the src module to the destination module. This speeds up linking quite a bit, e.g. gccld time on 176.gcc from 26s -> 20s when forming the .rbc file, with a profile build. One of the really strange but cool effects of this patch is that it speeds up the optimizers as well, from 12s -> 10.7s, presumably because of better locality??? In any case, this is just a first step. We can trivially get rid of the LocalMap now and do other simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17893 91177308-0d34-0410-b5e6-96231b3b80d8
* The second arg may be clobbered by this functionChris Lattner2004-11-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17880 91177308-0d34-0410-b5e6-96231b3b80d8
* Linker.h moved to include/llvm from include/llvm/Support.Reid Spencer2004-11-141-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17807 91177308-0d34-0410-b5e6-96231b3b80d8
* This file originated in lib/VMCore/Linker.cpp but now lives inReid Spencer2004-11-121-1/+1
| | | | | | | lib/Linker/LinkModules.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17694 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop propagating method names that violate the coding standardReid Spencer2004-11-051-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17498 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for undef and unreachableChris Lattner2004-10-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17041 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure the const bit gets inherited correctly when linking declarationsChris Lattner2004-10-051-1/+15
| | | | | | | | of disagreeing constness. This fixes test/Regression/Linker/ConstantGlobals[123].ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16692 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement support for dependent libraries. The "source" module's dependentReid Spencer2004-09-111-0/+21
| | | | | | | | | libraries list is merged into the "destination" module's list. Also, if the source module is one of the dependent libraries, it is removed from the list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16282 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a nasty bug that Nate ran into. In particular, instead of emitting a 2+MBChris Lattner2004-08-211-6/+13
| | | | | | | | | | | | | error message, print out: llvm-link: error linking in 'g.2.rbc': Global Variable Collision on ' %struct.D_Reduction* %d_reduction_10_gram' - External linkage globals have different initializers That's a bit more concise, huh? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15958 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another minor problem that exists if you ahve multiple functions withChris Lattner2004-08-041-15/+18
| | | | | | | nonunifiable types but the same name. Down with PR411! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15511 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typeoChris Lattner2004-08-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15510 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a major regression in my previous checkinChris Lattner2004-08-041-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15486 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop using getValues().Alkis Evlogimenos2004-08-041-12/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15485 91177308-0d34-0410-b5e6-96231b3b80d8
* FindGlobalNamed used to take 2.92s out of 8.39s running a profile build ofChris Lattner2004-08-041-53/+36
| | | | | | | | | | | | gccld -disable-opt on 252.eon. This patch deletes it and replaces it with a map. The proper fix for this is to fix PR411, but this will do in the short term. gccld on eon now takes 5.51s, which is 50% faster than before this patch. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15480 91177308-0d34-0410-b5e6-96231b3b80d8
* I swear I compiled this, really I did.Chris Lattner2004-08-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15467 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor some code out, no substantial change.Chris Lattner2004-08-041-18/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15466 91177308-0d34-0410-b5e6-96231b3b80d8
* Concisify some codeChris Lattner2004-08-041-24/+16
| | | | | | | | | Do not call FindGlobalNamed when we know we will ignore the result (because we are not going to link a static symbol anyway). This speeds up gccld -disable-opt on 252.eon from 8.63s to 8.39s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15465 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15334 91177308-0d34-0410-b5e6-96231b3b80d8
* bug 122:Reid Spencer2004-07-171-7/+4
| | | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Correct isa<Constant> for GlobalValue subclass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14930 91177308-0d34-0410-b5e6-96231b3b80d8
* - #include <iostream> since its not in Value.h any more.Reid Spencer2004-07-041-1/+3
| | | | | | | - constify use of Type* returned from symbol table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14615 91177308-0d34-0410-b5e6-96231b3b80d8
* Linker.h moved to include/llvm/SupportMisha Brukman2004-06-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14349 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert to SymbolTable's new lookup and iteration interfaces.Reid Spencer2004-05-251-23/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13751 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix linking of constant expr casts due to type resolution changes. WithChris Lattner2004-03-311-0/+8
| | | | | | | this and the other patches 253.perlbmk links again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12565 91177308-0d34-0410-b5e6-96231b3b80d8