e58f7408d0 
								
							 
						 
						
							
							
								
								Remove a redundant syscall.  
							
							... 
							
							
							
							llvm-svn: 29405 
							
						 
						
							2006-07-28 22:52:11 +00:00  
				
					
						
							
							
								 
						
							
								19247f36ea 
								
							 
						 
						
							
							
								
								eliminate some ugly code, using ConstantExpr::getWithOperands instead.  
							
							... 
							
							
							
							llvm-svn: 29149 
							
						 
						
							2006-07-14 22:21:31 +00:00  
				
					
						
							
							
								 
						
							
								546436c482 
								
							 
						 
						
							
							
								
								Finish removal of EH usage from the Archive library. The REQUIRES_EH flag  
							
							... 
							
							
							
							in lib/Bytecode/Archive/Makefile is now removed. One small step closer to
a smaller LLVM.
llvm-svn: 29067 
							
						 
						
							2006-07-07 20:56:50 +00:00  
				
					
						
							
							
								 
						
							
								44ab8aefa6 
								
							 
						 
						
							
							
								
								Fix Regression/Linker/2006-06-15-GlobalVarAnment.ll  
							
							... 
							
							
							
							llvm-svn: 28812 
							
						 
						
							2006-06-16 01:24:04 +00:00  
				
					
						
							
							
								 
						
							
								c774592641 
								
							 
						 
						
							
							
								
								Fix linking of inline asm objects.  
							
							... 
							
							
							
							llvm-svn: 28640 
							
						 
						
							2006-06-01 19:14:22 +00:00  
				
					
						
							
							
								 
						
							
								0197e454d1 
								
							 
						 
						
							
							
								
								Add shufflevector support  
							
							... 
							
							
							
							llvm-svn: 27515 
							
						 
						
							2006-04-08 01:19:47 +00:00  
				
					
						
							
							
								 
						
							
								5c349b8b7d 
								
							 
						 
						
							
							
								
								Add code to RemapOperand() to handle Instruction::ExtractElement and  
							
							... 
							
							
							
							Instruction::InsertElement.
llvm-svn: 27477 
							
						 
						
							2006-04-07 01:27:42 +00:00  
				
					
						
							
							
								 
						
							
								8ebd2164eb 
								
							 
						 
						
							
							
								
								Rename method  
							
							... 
							
							
							
							llvm-svn: 25571 
							
						 
						
							2006-01-24 04:14:29 +00:00  
				
					
						
							
							
								 
						
							
								dd2d3faf19 
								
							 
						 
						
							
							
								
								Add support for linking inline asm  
							
							... 
							
							
							
							llvm-svn: 25560 
							
						 
						
							2006-01-23 23:08:37 +00:00  
				
					
						
							
							
								 
						
							
								93bde9cbf7 
								
							 
						 
						
							
							
								
								add support for ConstantPacked to the linker  
							
							... 
							
							
							
							llvm-svn: 25467 
							
						 
						
							2006-01-19 23:15:58 +00:00  
				
					
						
							
							
								 
						
							
								0e9bd5a416 
								
							 
						 
						
							
							
								
								Fixed style of curly brace.  No functionality changes.  
							
							... 
							
							
							
							llvm-svn: 25414 
							
						 
						
							2006-01-17 22:01:57 +00:00  
				
					
						
							
							
								 
						
							
								5995c57574 
								
							 
						 
						
							
							
								
								For PR521:  
							
							... 
							
							
							
							With these patches we implement the ability for the Linker library to
keep track of which libraries were actually bytecode files (not archives)
and cause their users to remove such files from the list of libraries to
pass to the native linker.
llvm-svn: 25169 
							
						 
						
							2006-01-10 03:14:40 +00:00  
				
					
						
							
							
								 
						
							
								8097c0a0d9 
								
							 
						 
						
							
							
								
								Be a little more explanatory in a comment.  
							
							... 
							
							
							
							llvm-svn: 25168 
							
						 
						
							2006-01-10 03:12:29 +00:00  
				
					
						
							
							
								 
						
							
								6796b48e51 
								
							 
						 
						
							
							
								
								Adjust the constructor to the Linker class to take an argument that names  
							
							... 
							
							
							
							the module being constructed. This is used to correctly name the module.
Previously the name of the linker tool was used which produces confusing
output when the module identifier is used in an error message.
llvm-svn: 24699 
							
						 
						
							2005-12-13 20:00:37 +00:00  
				
					
						
							
							
								 
						
							
								d490d4f023 
								
							 
						 
						
							
							
								
								Fix test/Regression/Linker/2005-12-06-AppendingZeroLengthArrays.ll and  
							
							... 
							
							
							
							PR662.  Thanks to Markus for providing me with a ton of files to
reproduce the problem!
llvm-svn: 24619 
							
						 
						
							2005-12-06 17:30:58 +00:00  
				
					
						
							
							
								 
						
							
								bde3845548 
								
							 
						 
						
							
							
								
								DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now  
							
							... 
							
							
							
							llvm-svn: 23940 
							
						 
						
							2005-10-24 02:26:13 +00:00  
				
					
						
							
							
								 
						
							
								c9c0473fa5 
								
							 
						 
						
							
							
								
								For PR495:  
							
							... 
							
							
							
							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.
llvm-svn: 22349 
							
						 
						
							2005-07-07 23:21:43 +00:00  
				
					
						
							
							
								 
						
							
								5b891e9847 
								
							 
						 
						
							
							
								
								For PR495:  
							
							... 
							
							
							
							Change interface to Path class:
readable -> canRead
writable -> canWrite
executable -> canExecute
More (incremental) changes coming to close 495.
llvm-svn: 22345 
							
						 
						
							2005-07-07 18:21:42 +00:00  
				
					
						
							
							
								 
						
							
								e251b5ca89 
								
							 
						 
						
							
							
								
								Preserve CC's when linking modules  
							
							... 
							
							
							
							llvm-svn: 21799 
							
						 
						
							2005-05-09 01:09:39 +00:00  
				
					
						
							
							
								 
						
							
								10468d8a3c 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21422 
							
						 
						
							2005-04-21 22:55:34 +00:00  
				
					
						
							
							
								 
						
							
								018b093c79 
								
							 
						 
						
							
							
								
								fix some 80 column violations  
							
							... 
							
							
							
							Add support for programs that define main in a .a file, such as f2c'd programs.
llvm-svn: 20631 
							
						 
						
							2005-03-15 23:03:34 +00:00  
				
					
						
							
							
								 
						
							
								ebaf17875e 
								
							 
						 
						
							
							
								
								consolidate LinkFiles into LinkItems, use lib_* iterators.  
							
							... 
							
							
							
							llvm-svn: 20630 
							
						 
						
							2005-03-15 22:55:17 +00:00  
				
					
						
							
							
								 
						
							
								d3d086d679 
								
							 
						 
						
							
							
								
								consolidate LinkLibraries into LinkItems  
							
							... 
							
							
							
							llvm-svn: 20629 
							
						 
						
							2005-03-15 22:51:40 +00:00  
				
					
						
							
							
								 
						
							
								531f9e92d4 
								
							 
						 
						
							
							
								
								This mega patch converts us from using Function::a{iterator|begin|end} to  
							
							... 
							
							
							
							using Function::arg_{iterator|begin|end}.  Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597 
							
						 
						
							2005-03-15 04:54:21 +00:00  
				
					
						
							
							
								 
						
							
								e68dae0eb6 
								
							 
						 
						
							
							
								
								Add support for ".so" files compiled with LLVM which contain LLVM bytecode.  
							
							... 
							
							
							
							llvm-svn: 20253 
							
						 
						
							2005-02-19 18:30:29 +00:00  
				
					
						
							
							
								 
						
							
								fe723a7c05 
								
							 
						 
						
							
							
								
								Eliminate silly warnings from the linker of the form:  
							
							... 
							
							
							
							WARNING: Type conflict between types named 'union.._604.'.
    Src=' %union.._604.'.
   Dest=' %union.._604.'
llvm-svn: 20252 
							
						 
						
							2005-02-19 17:52:37 +00:00  
				
					
						
							
							
								 
						
							
								08a5eb3cf0 
								
							 
						 
						
							
							
								
								Minor cleanup.  No need to explicitly tell the compiler the template arguments.  
							
							... 
							
							
							
							llvm-svn: 20153 
							
						 
						
							2005-02-13 17:50:16 +00:00  
				
					
						
							
							
								 
						
							
								71a44087d4 
								
							 
						 
						
							
							
								
								Print something useful for gccld -v with an archive.  
							
							... 
							
							
							
							llvm-svn: 20148 
							
						 
						
							2005-02-13 15:26:14 +00:00  
				
					
						
							
							
								 
						
							
								16277c1775 
								
							 
						 
						
							
							
								
								Allow globals to be of different const'nesses when we link.  
							
							... 
							
							
							
							This finally resolves PR502, PR450,
and test/Regression/Linker/2005-02-12-ConstantGlobals{,-2}.ll correctly
llvm-svn: 20135 
							
						 
						
							2005-02-12 19:20:28 +00:00  
				
					
						
							
							
								 
						
							
								6b853b22cb 
								
							 
						 
						
							
							
								
								Remove un-needed #includes.  
							
							... 
							
							
							
							llvm-svn: 19061 
							
						 
						
							2004-12-20 04:15:44 +00:00  
				
					
						
							
							
								 
						
							
								b193ec5a13 
								
							 
						 
						
							
							
								
								Fix a compile error. config.h is now needed because DataTypes.h doesn't  
							
							... 
							
							
							
							include it any more.
llvm-svn: 18993 
							
						 
						
							2004-12-16 19:19:24 +00:00  
				
					
						
							
							
								 
						
							
								92e97620be 
								
							 
						 
						
							
							
								
								* Fix header block.  
							
							... 
							
							
							
							* Fix loop style per standards
* Don't create a new Module when the Linker's module is released.
* Add/fix function comments.
llvm-svn: 18871 
							
						 
						
							2004-12-13 03:50:50 +00:00  
				
					
						
							
							
								 
						
							
								bf63444a41 
								
							 
						 
						
							
							
								
								Add missing space in a comment.  
							
							... 
							
							
							
							llvm-svn: 18870 
							
						 
						
							2004-12-13 03:23:13 +00:00  
				
					
						
							
							
								 
						
							
								0005214558 
								
							 
						 
						
							
							
								
								Fix header and function comments.  
							
							... 
							
							
							
							llvm-svn: 18867 
							
						 
						
							2004-12-13 03:13:18 +00:00  
				
					
						
							
							
								 
						
							
								4a23d3f8e5 
								
							 
						 
						
							
							
								
								This file contains basic Linker facilities needed by all tools  
							
							... 
							
							
							
							llvm-svn: 18860 
							
						 
						
							2004-12-13 03:00:28 +00:00  
				
					
						
							
							
								 
						
							
								c4e3153455 
								
							 
						 
						
							
							
								
								Make LinkModules a static member function  
							
							... 
							
							
							
							llvm-svn: 18859 
							
						 
						
							2004-12-13 03:00:16 +00:00  
				
					
						
							
							
								 
						
							
								9a5613962f 
								
							 
						 
						
							
							
								
								This file contains only the Linker's library linking support  
							
							... 
							
							
							
							llvm-svn: 18858 
							
						 
						
							2004-12-13 03:00:04 +00:00  
				
					
						
							
							
								 
						
							
								ebd3d9f8fc 
								
							 
						 
						
							
							
								
								For PR351: \  
							
							... 
							
							
							
							* Remove redundant static function LinkOneLibrary. \
* Remove unneded #includes \
* Convert FileSupport usage to sys::Path instead
llvm-svn: 18857 
							
						 
						
							2004-12-13 02:59:52 +00:00  
				
					
						
							
							
								 
						
							
								9ce11c3929 
								
							 
						 
						
							
							
								
								This file contains only the Linker's file linking support  
							
							... 
							
							
							
							llvm-svn: 18856 
							
						 
						
							2004-12-13 02:59:41 +00:00  
				
					
						
							
							
								 
						
							
								fe73bfcfdb 
								
							 
						 
						
							
							
								
								For PR351: \  
							
							... 
							
							
							
							* Convert functions to Linker:: methods. \
* Remove unneeded #includes \
* Utilize sys::Path utilities not FileSupport utilities \
* Move File & Library linking functions to other source files
llvm-svn: 18855 
							
						 
						
							2004-12-13 02:59:29 +00:00  
				
					
						
							
							
								 
						
							
								b7f5916e01 
								
							 
						 
						
							
							
								
								Make sure to link the target-triple as well, so it ends up in the .llvm.bc file  
							
							... 
							
							
							
							llvm-svn: 18774 
							
						 
						
							2004-12-10 20:26:15 +00:00  
				
					
						
							
							
								 
						
							
								630729c97e 
								
							 
						 
						
							
							
								
								Turn this error back into a warning, fixing the povray regression  
							
							... 
							
							
							
							llvm-svn: 18655 
							
						 
						
							2004-12-08 20:01:10 +00:00  
				
					
						
							
							
								 
						
							
								db38fe94ae 
								
							 
						 
						
							
							
								
								Revert this disgusting hack, John has a much nicer solution  
							
							... 
							
							
							
							llvm-svn: 18611 
							
						 
						
							2004-12-08 03:31:14 +00:00  
				
					
						
							
							
								 
						
							
								79a993ea0d 
								
							 
						 
						
							
							
								
								Add a disgusting hack to work around a libstdc++ issue.  This code should  
							
							... 
							
							
							
							be removed when PR400 is resolved.
llvm-svn: 18610 
							
						 
						
							2004-12-08 03:28:51 +00:00  
				
					
						
							
							
								 
						
							
								1014afc7ea 
								
							 
						 
						
							
							
								
								Fix PR139: \  
							
							... 
							
							
							
							Implement LinkItems and BuildLinkItems interfaces.
llvm-svn: 18547 
							
						 
						
							2004-12-05 19:14:55 +00:00  
				
					
						
							
							
								 
						
							
								a57c105687 
								
							 
						 
						
							
							
								
								Fix linkage of mismatched weak globals.  This unbreaks 300.twolf  
							
							... 
							
							
							
							llvm-svn: 18494 
							
						 
						
							2004-12-04 18:54:48 +00:00  
				
					
						
							
							
								 
						
							
								fc61de3902 
								
							 
						 
						
							
							
								
								Significantly rework linker support for global variables, allowing it to  
							
							... 
							
							
							
							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.
llvm-svn: 18465 
							
						 
						
							2004-12-03 22:18:41 +00:00  
				
					
						
							
							
								 
						
							
								f78508b25e 
								
							 
						 
						
							
							
								
								PR466:  
							
							... 
							
							
							
							* Make the linker find lib*.bca files now instead of lib*.bc since those
  are what the makefiles now generate for bytecode archives.
* Make sure the linker only links archives when LinkLibraries is called.
  Previously if it found a lib*.bc file and that file was a bytecode file,
  it would link in the entire bytecode. This could make -lc -lc fail with
  duplicate symbols error but it shouldn't as searching multiple libraries,
  even the same one more than once, is permitted.
* Now that the above problems are corrected, implement the dependent libs
  feature. After the module is linked with all specified libraries, the
  LinkLibraries function will obtain the set of dependent libraries from
  the linked modules and attemp to find and link against those libraries.
llvm-svn: 18428 
							
						 
						
							2004-12-02 09:52:10 +00:00  
				
					
						
							
							
								 
						
							
								3f2352e23e 
								
							 
						 
						
							
							
								
								Revert version 1.39. It breaks the ordering of the library processing.  
							
							... 
							
							
							
							llvm-svn: 18399 
							
						 
						
							2004-11-30 22:54:48 +00:00  
				
					
						
							
							
								 
						
							
								d1697bf2f7 
								
							 
						 
						
							
							
								
								Shared library extension is now in LTDL_SHLIB_EXT  
							
							... 
							
							
							
							llvm-svn: 18353 
							
						 
						
							2004-11-29 12:40:21 +00:00  
				
					
						
							
							
								 
						
							
								8bb258d1ea 
								
							 
						 
						
							
							
								
								Implement dependent library linking. It is no longer required that -lstdc++  
							
							... 
							
							
							
							-lstdsup++ no -lc be passed on the command line to llvm linkers if the
progam being linked was compiled with the C/C++ Front End or Stacker.
llvm-svn: 18243 
							
						 
						
							2004-11-25 09:32:08 +00:00  
				
					
						
							
							
								 
						
							
								2c4f9a484c 
								
							 
						 
						
							
							
								
								Remove blank comment lines for uniformity.  
							
							... 
							
							
							
							Make sure lines don't exceed 80 cols.
llvm-svn: 18242 
							
						 
						
							2004-11-25 09:29:44 +00:00  
				
					
						
							
							
								 
						
							
								3356325996 
								
							 
						 
						
							
							
								
								Eliminate unsightly ;;  
							
							... 
							
							
							
							llvm-svn: 17979 
							
						 
						
							2004-11-19 03:27:05 +00:00  
				
					
						
							
							
								 
						
							
								c2455ca7b7 
								
							 
						 
						
							
							
								
								Reduce the amount of work in LinkInArchive by not searching the archive for  
							
							... 
							
							
							
							symbols it has already identified as not defining.
llvm-svn: 17975 
							
						 
						
							2004-11-19 03:13:25 +00:00  
				
					
						
							
							
								 
						
							
								f27514df9d 
								
							 
						 
						
							
							
								
								Don't increment a dead iterator  
							
							... 
							
							
							
							llvm-svn: 17904 
							
						 
						
							2004-11-16 19:04:40 +00:00  
				
					
						
							
							
								 
						
							
								7391dde138 
								
							 
						 
						
							
							
								
								Simplify the remapper by only needing one map, since the body of the functions  
							
							... 
							
							
							
							being linked do not need to be remapped any longer.
llvm-svn: 17900 
							
						 
						
							2004-11-16 17:12:38 +00:00  
				
					
						
							
							
								 
						
							
								2f0557d0e4 
								
							 
						 
						
							
							
								
								Take advantage of the fact that we are allowed to clobber the input module  
							
							... 
							
							
							
							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.
llvm-svn: 17893 
							
						 
						
							2004-11-16 07:31:51 +00:00  
				
					
						
							
							
								 
						
							
								5208a11440 
								
							 
						 
						
							
							
								
								Per code review:\  
							
							... 
							
							
							
							* Adjust indentation\
* Ensure memory do not leak if exceptions happen (std::auto_ptr use)
llvm-svn: 17885 
							
						 
						
							2004-11-16 06:47:41 +00:00  
				
					
						
							
							
								 
						
							
								f2e808449d 
								
							 
						 
						
							
							
								
								The second arg may be clobbered by this function  
							
							... 
							
							
							
							llvm-svn: 17880 
							
						 
						
							2004-11-16 06:41:36 +00:00  
				
					
						
							
							
								 
						
							
								2981914302 
								
							 
						 
						
							
							
								
								use an autoptr  
							
							... 
							
							
							
							llvm-svn: 17875 
							
						 
						
							2004-11-16 06:40:54 +00:00  
				
					
						
							
							
								 
						
							
								a67b6e1874 
								
							 
						 
						
							
							
								
								Remove a forgotten debug output line.  
							
							... 
							
							
							
							llvm-svn: 17810 
							
						 
						
							2004-11-14 23:49:55 +00:00  
				
					
						
							
							
								 
						
							
								9b0ddbbe2c 
								
							 
						 
						
							
							
								
								Linker.h moved to include/llvm from include/llvm/Support.  
							
							... 
							
							
							
							llvm-svn: 17807 
							
						 
						
							2004-11-14 23:27:04 +00:00  
				
					
						
							
							
								 
						
							
								16c3bb3198 
								
							 
						 
						
							
							
								
								Linker.h has a new home.  
							
							... 
							
							
							
							llvm-svn: 17801 
							
						 
						
							2004-11-14 23:00:08 +00:00  
				
					
						
							
							
								 
						
							
								c470261d27 
								
							 
						 
						
							
							
								
								Don't bother with a re-linked library, ensure archive library is built.  
							
							... 
							
							
							
							llvm-svn: 17773 
							
						 
						
							2004-11-14 22:03:14 +00:00  
				
					
						
							
							
								 
						
							
								9db61d9e3a 
								
							 
						 
						
							
							
								
								*Adjust prototypes for public interface. *Rewrite LinkInArchive to use symbol tables.  
							
							... 
							
							
							
							llvm-svn: 17772 
							
						 
						
							2004-11-14 22:02:27 +00:00  
				
					
						
							
							
								 
						
							
								a81f8197eb 
								
							 
						 
						
							
							
								
								Makefile for lib/Linker  
							
							... 
							
							
							
							llvm-svn: 17695 
							
						 
						
							2004-11-12 20:38:45 +00:00  
				
					
						
							
							
								 
						
							
								361e513db0 
								
							 
						 
						
							
							
								
								This file originated in lib/VMCore/Linker.cpp but now lives in  
							
							... 
							
							
							
							lib/Linker/LinkModules.cpp
llvm-svn: 17694 
							
						 
						
							2004-11-12 20:37:43 +00:00  
				
					
						
							
							
								 
						
							
								1cfa8d60f8 
								
							 
						 
						
							
							
								
								This file originated in tools/gccld/Linker.cpp but now lives in  
							
							... 
							
							
							
							lib/Linker/LinkArchives.cpp
llvm-svn: 17693 
							
						 
						
							2004-11-12 20:34:32 +00:00