Commit Graph

214 Commits

Author SHA1 Message Date
Misha Brukman 33b9647a45 Doxygen-ified function comments.
llvm-svn: 8771
2003-09-30 17:42:57 +00:00
Misha Brukman af3b3bdf6d Removed extra space in comments.
llvm-svn: 8770
2003-09-30 17:40:12 +00:00
Chris Lattner f5f4cbb055 Remove initials from source file
llvm-svn: 8769
2003-09-30 17:36:51 +00:00
Misha Brukman a307080d60 Make code more terse:
* Remove extra blank lines
* Delete space between function call and arg list
* Delete non-content comment lines ("//")

llvm-svn: 8768
2003-09-30 17:33:12 +00:00
Brian Gaeke 484f2c7442 1. Use better error messages in LinkFiles().
2. I think the caller of LinkFiles() should not ignore a true return value.
   (If you have a good reason why it ought to, feel free to revert
   this. It's just something that's been bugging me for a while.)

llvm-svn: 8760
2003-09-30 14:03:48 +00:00
Chris Lattner cc83d5f3e2 Update file headers for renamed files.
llvm-svn: 8758
2003-09-30 03:24:28 +00:00
Misha Brukman b3541d4264 Tersified code:
* Removed space between function name and its argument list
* Removed space between '&' and variable name
* Removed empty comment lines: `//'

llvm-svn: 8750
2003-09-29 22:26:24 +00:00
Misha Brukman 0575c6c432 * Ordered includes according to LLVM programmers' guide
* Made code layout more verbose: no more '{' on a line by itself
* Pruned extra whitespace

llvm-svn: 8748
2003-09-29 22:16:43 +00:00
Chris Lattner 65d93e208b Minor cleanups:
* Local header file goes at top
 * Remove unneeded #includes
 * Wrap code at 80 columns
 * Declare variables where they are used
 * 'register' is not needed
 * Use 'unsigned' instead of 'int' variables where possible

llvm-svn: 8657
2003-09-22 20:21:34 +00:00
John Criswell 17c3d4dfc1 New header file for gccld.
llvm-svn: 8610
2003-09-19 20:24:40 +00:00
John Criswell b533bde540 Removed linking functionality from gccld.cpp and moved it to linker.cpp.
Renamed functions that were all lower-case.
Moved functions from util.cpp into linker.cpp or gccld.cpp.
Removed util.h and created gccld.h.
Refactored the linker functionality in linker.cpp so that it is easier to
follow, easier to modify, and it's library/object file search behavior is
easier to understand and document.
Added code to include library paths when doing native linking, but this
causes problems and is currently #ifdef'd out.

llvm-svn: 8609
2003-09-19 20:24:23 +00:00
John Criswell 8ecc30249f Refactored gccld into three C++ source files.
Added code ignore bytecode link failures when generating native code.
Moved native code and bytecode generation out of the main() function.

llvm-svn: 8595
2003-09-18 16:22:26 +00:00
John Criswell a2748c267b Replaced the call to strdup() with a new operator followed by a strcpy().
This should prevent calls to the new oerator and malloc.

llvm-svn: 8587
2003-09-17 19:14:41 +00:00
John Criswell 0217b1beb3 Added the use of the const keyword.
Have gccld find the path to llc and gcc instead of having the library do it.

llvm-svn: 8586
2003-09-17 19:04:22 +00:00
John Criswell f22d845bd7 Removed the use of the environ variable and instead use the environment array
passed into main().  This may (or may not) be more portable, but it looks
nicer.
Added functions to copy the environment array and modify the copy, thus
preserving the environment.
Switched from using system() to using ExecWait().
The code now removes the assembly file generated when using the -native option.
Fixed the remove_env() function: The previous revision truncated the
environment variable list.  This version just zaps the variable as intended.

llvm-svn: 8579
2003-09-17 15:20:51 +00:00
John Criswell 1997a34e26 Added the -native option.
With this option, gccld links the program into LLVM bytecode and a native code
binary.  This allows llvmgcc to correctly tell GNU configure scripts when
things aren't defined properly (because the native link will fail).

llvm-svn: 8570
2003-09-16 21:27:35 +00:00
Brian Gaeke 28f8e41203 -abort-on-exception is gone. Rebuild your gccld shell scripts, folks! :-)
llvm-svn: 8368
2003-09-05 19:23:03 +00:00
John Criswell a3ce8b48b0 Added code that makes the bytecode file readable (needed by the generated shell
script).
Removed the use of sys/types.h and sys/stat.h.
Modified FileExists() so that it uses the access() system call to check for
file existance.  This requires less header files and might even be a tad bit
faster.

llvm-svn: 8328
2003-09-02 21:11:22 +00:00
John Criswell 06327da723 Modified the code so that it uses the MakeFileExecutable() method. The new
library code now adds all execute bits that are allowed by the umask value to
the file's current permission bits.

llvm-svn: 8325
2003-09-02 20:17:20 +00:00
John Criswell c907487c22 "Help keep our secrets secret."
Added code to respect the umask value.  Before, files were generated world
readable, which may not be desirable for all installations.

llvm-svn: 8215
2003-08-29 14:46:12 +00:00
Chris Lattner b4d9921728 add preliminary support for -export-dynamic
llvm-svn: 8058
2003-08-22 19:18:45 +00:00
Misha Brukman 90869942e7 Make the bytecode file executable as well for LLEE purposes.
llvm-svn: 7992
2003-08-20 20:38:15 +00:00
Chris Lattner 8023f5c1c9 Revert my last (accidental) checkin, but keep the typeo fix
llvm-svn: 7879
2003-08-15 04:56:47 +00:00
Chris Lattner 6ae402fd2c rename selection library to selectiondag
llvm-svn: 7878
2003-08-15 04:56:09 +00:00
Chris Lattner c8a619313a Run the simplify CFG pass after instcombine which has the effect of deleting
ALL of the global ctor/dtor stuff if it is not used!

llvm-svn: 6916
2003-06-26 05:29:50 +00:00
Chris Lattner e4b7d467f8 Move the instcombine pass before globaldce, so that if globals are made dead by instcombine, that they can be deleted.
llvm-svn: 6910
2003-06-26 04:32:31 +00:00
Chris Lattner 684e3d2726 Funcresolve no longer performs nicification of resolved functions
instcombine does this

llvm-svn: 6787
2003-06-19 17:03:51 +00:00
Chris Lattner 472beba236 Add new DAE pass to gccld. It does not add cause any regressions in the test-suite
llvm-svn: 6770
2003-06-18 16:29:02 +00:00
Chris Lattner 4c46c95247 Fix formatting in file
llvm-svn: 6398
2003-05-29 15:13:15 +00:00
Chris Lattner e320c9215d Add compatibility option
llvm-svn: 6354
2003-05-27 19:15:11 +00:00
Brian Gaeke 5bfa37f4df gccld.cpp:
Fix typo in header.
 Add IsArchive static method.
 Roll LoadLibraryFromDirectory() into LoadLibrary(), and factor
  LoadLibraryExactName() out of the result. Instead of treating the current
  directory specially, just insert it into LibPaths in the beginning of
  main().
 Make LoadLibrary() take a "search" flag that says whether to search for the
  correct library, or just trust that LibName is right.
 Make LinkLibrary() take a "search" flag, and pass it to LoadLibrary().
 Change the for-loop over InputFilenames to detect ar archives and link them
  in as libraries without searching.
 Change the for-loop over Libraries to explicitly turn on the "search" flag
  to LinkLibrary() that makes LoadLibrary() search for the correct library
  (i.e., when processing -lNAME options.)

llvm-svn: 6316
2003-05-23 20:27:07 +00:00
Chris Lattner a2d3504c24 Search LLVM_LIB_SEARCH_PATH for objects to allow it to find crtend.o
Implement minor library linking optimization.

llvm-svn: 6181
2003-05-13 22:14:13 +00:00
Chris Lattner d571e2aa91 Make sure to create a target data that matches the Module's target properties.
llvm-svn: 5904
2003-04-24 19:13:02 +00:00
Chris Lattner da3bc21076 Add support for allowing the user to extend the GCCLD searchpath
llvm-svn: 5825
2003-04-21 19:53:24 +00:00
Chris Lattner 4b462c0f99 Eliminate useless duplicate libraries
llvm-svn: 5823
2003-04-19 23:07:33 +00:00
Chris Lattner 1d49617c4f Add first support for linking in .a files correctly and minimally, like a real linker does
llvm-svn: 5822
2003-04-19 22:44:38 +00:00
Chris Lattner 602d209078 Add crufty compatibility stuff for ld
llvm-svn: 5813
2003-04-18 23:38:22 +00:00
Chris Lattner 2b3a5dbacb Use anonymous namespace instead of "static"
Kill using decl

llvm-svn: 5811
2003-04-18 23:01:25 +00:00
Chris Lattner a9a988005b Allow the user to disable the internalize pass
llvm-svn: 5792
2003-04-16 21:43:22 +00:00
Chris Lattner c451fb4efd Make stuff compiled with gccld not dump into the debugger if there's a problem
llvm-svn: 5028
2002-12-14 21:28:32 +00:00
Chris Lattner da4c6cc151 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3167
2002-07-30 21:43:22 +00:00
Chris Lattner 64a6727d02 *** empty log message ***
llvm-svn: 3087
2002-07-25 16:31:09 +00:00
Chris Lattner b3b021622f *** empty log message ***
llvm-svn: 3044
2002-07-24 17:12:08 +00:00
Chris Lattner 35c4541bbe *** empty log message ***
llvm-svn: 3040
2002-07-23 22:04:43 +00:00
Chris Lattner a896b08b5c *** empty log message ***
llvm-svn: 3002
2002-07-23 17:52:38 +00:00
Chris Lattner f5cad15a67 *** empty log message ***
llvm-svn: 2985
2002-07-22 02:10:13 +00:00
Chris Lattner c19be16c7b YEs, we really do want to sort.
llvm-svn: 2810
2002-06-30 16:20:02 +00:00
Anand Shukla fef3241cc6 Changes for 64bit gcc
llvm-svn: 2799
2002-06-25 21:57:48 +00:00
Chris Lattner 7076ff29ed MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2778
2002-06-25 16:13:21 +00:00
Chris Lattner 2df953ba74 Use literal newline instead of endl
llvm-svn: 2668
2002-05-20 19:49:24 +00:00
Chris Lattner 89a20ef164 Merge all include/llvm/Transforms/Scalar/* into a single Scalar.h
llvm-svn: 2538
2002-05-07 20:03:27 +00:00
Chris Lattner 863c37e0bb Oops, somehow lost a slash. Fixed
llvm-svn: 2524
2002-05-07 18:39:52 +00:00
Chris Lattner 7608a46cbe Updates to move some header files out of include/llvm/Transforms into
the Scalar and Utils subdirectories

llvm-svn: 2523
2002-05-07 18:36:35 +00:00
Chris Lattner 56c3f22249 Straighten out makefiles after moving code to new Transform Utils library
llvm-svn: 2520
2002-05-07 18:18:26 +00:00
Chris Lattner f0f014a182 Run the internalize pass to mark all functions except main internal when
linking the final program to allow smarter optimizations

llvm-svn: 2364
2002-04-28 05:49:45 +00:00
Chris Lattner c065ad850c Make sure that there is no case where a signal can occur leaving a partially
written output file.  This is important because crashing testcases often write
part of a file out, and the testing harness decides the file is up-to-date next
time the test is run.

llvm-svn: 2303
2002-04-18 19:55:25 +00:00
Chris Lattner c34061fc54 * The cleangcc pass is broken into two parts, we only want to
FunctionResolvingPass one.
* We run it *after* the symbol stripping pass so that -strip can be
  pipelined with the constant merging pass or something else if desired.

llvm-svn: 2226
2002-04-10 20:37:47 +00:00
Chris Lattner 2b33d75537 Add support for the gnu ld -s (strip) option
llvm-svn: 2157
2002-04-08 05:18:12 +00:00
Chris Lattner 3b08c2f46c GCCLD actually does transformations to simplify the linked program now.
llvm-svn: 2155
2002-04-08 00:14:58 +00:00
Chris Lattner cd739a66cf Remove asmwriter library from link line, because the useful contents of it
have been incorporated into the vmcore library.

llvm-svn: 2153
2002-04-07 22:35:30 +00:00
Chris Lattner 62b7fd136e Change references to the Method class to be references to the Function
class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.

llvm-svn: 2144
2002-04-07 20:49:59 +00:00
Chris Lattner e697504611 Echo the right tool name on error
llvm-svn: 1865
2002-03-12 15:41:36 +00:00
Chris Lattner 6f0d4531ef * Implement linking to libraries
* Pass arguments to program through shell script

llvm-svn: 1851
2002-03-11 17:49:53 +00:00
Chris Lattner 5ff2e0510f Initial Checkin of gccld
llvm-svn: 1578
2002-01-24 19:12:12 +00:00