Commit Graph

568 Commits

Author SHA1 Message Date
Misha Brukman 6a6587ab02 Fixed misspelling.
llvm-svn: 7223
2003-07-21 21:58:16 +00:00
Chris Lattner 361e9c8b97 Remove instloops library
llvm-svn: 7210
2003-07-21 19:07:27 +00:00
Misha Brukman 63e14b5a4a Initialize the target architecture based on compiler defines, so if compiled on
x86 or Sparc, LLC will automatically default to that platform, no guessing
required. On another platform, it will default to `noarch' and will have to
guess which architecture to compile to.

llvm-svn: 7207
2003-07-18 22:21:40 +00:00
Anand Shukla 6d79113343 Added pass to instrument backedges for lightweight tracing
llvm-svn: 7202
2003-07-18 16:25:40 +00:00
Misha Brukman 7fdaab4f68 The word `separate' only has one `e'.
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Misha Brukman ecfc0d2d3c Converted tabs to spaces.
llvm-svn: 7139
2003-07-10 16:35:17 +00:00
Misha Brukman f75934fe93 Fixed indentation.
llvm-svn: 7122
2003-07-07 22:28:42 +00:00
Misha Brukman 7dee443c1c * If compiling on X86 or Sparc, automagically enable the JIT for that arch
* Setting ENABLE_X86_JIT or ENABLE_SPARC_JIT on the `make' command-line will
  force the inclusion of that JIT on a different architecture
* If neither JIT is enabled (e.g., compiling on a different architecture), the
  -march option will not be available to LLI.
* As a side effect of the $ARCH variable, the Sparc LLI can now link just a bit
  faster by not including the x86 library.

llvm-svn: 7070
2003-07-02 17:53:19 +00:00
John Criswell 3ef61afb76 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +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 2599356122 Try to run cleanups even if nothing was modified in the preview passes
llvm-svn: 6897
2003-06-25 04:13:52 +00:00
Chris Lattner 0192b72fde Run dead arg elimination, and tell it that it's ok to hack up non-internal functions
llvm-svn: 6896
2003-06-25 04:13:36 +00:00
Chris Lattner e81e0d8da9 Add tail duplication pass to the pipeline, move the verifier pass to the front
Other minor reorganizations

llvm-svn: 6849
2003-06-22 20:11:45 +00:00
Chris Lattner 67e0842581 Minor cleanups
llvm-svn: 6799
2003-06-20 15:49:04 +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
Brian Gaeke c39d16ab8f tools/llc/llc.cpp: Make "-o -" work.
llvm-svn: 6780
2003-06-18 21:43:33 +00:00
Brian Gaeke cf8c4f5fe4 lib/Target/Sparc/Sparc.cpp:
Move LowerAllocations, PrintFunction, and SymbolStripping passes, and
  the corresponding -disable-strip and -d options, over here to the SPARC
  target-specific bits of llc. Rename -d to -dump-asm.

tools/llc/Makefile:
 Reindent. Add x86 library so that llc compiles again.

tools/llc/llc.cpp:
 Remove support for running arbitrary optimization passes. Use opt instead.
 Remove LowerAllocations, PrintFunction, and SymbolStripping passes, as noted
  above.
 Allow user to select a backend (x86 or SPARC); default to guessing from
  the endianness/pointer size of the input bytecode file.
 Fix typos.
 Delete empty .s file and exit with error status if target does not support
  static compilation.

llvm-svn: 6776
2003-06-18 21:14:23 +00:00
Chris Lattner 422de25579 Reindent code to match the rest of the file
llvm-svn: 6772
2003-06-18 18:46:08 +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
Brian Gaeke e38c7d9f2d Use $(PLATFORMLIBDL) to selectively bring in -ldl only on those platforms where
it is needed.

llvm-svn: 6753
2003-06-17 20:09:18 +00:00
Chris Lattner dcd6bcb71d Life is too short. Link in too much stuff on Linux to make building on sun easier
llvm-svn: 6748
2003-06-17 19:14:59 +00:00
Chris Lattner eba0e9930d The never-ending odyssey trying to get sparc to link
llvm-svn: 6747
2003-06-17 18:19:52 +00:00
Chris Lattner f9f0005af7 Make sure to get the value of ARCH before we use it
llvm-svn: 6746
2003-06-17 17:53:35 +00:00
Chris Lattner d9cc372613 Do not link in the Sparc JIT when building on X86. Eventually the sparc will not
link in the X86 JIT either, but this makes testing easier.

For some reason, the sparc JIT was breaking the X86 JIT when it was linked in. :(

llvm-svn: 6745
2003-06-17 15:54:52 +00:00
Chris Lattner 66e018bb80 Whoops, didn't mean to check that in :(
llvm-svn: 6743
2003-06-17 15:46:34 +00:00
Chris Lattner d9e6bfae0e Use more structured command line option processing
llvm-svn: 6742
2003-06-17 15:43:13 +00:00
Chris Lattner 55491774bb Actually, change it to use explicit new/delete, which is more likely to be
optimized INTO an alloca

llvm-svn: 6727
2003-06-16 22:29:09 +00:00
Chris Lattner 7bdbd91e92 Remove usage of alloca
llvm-svn: 6726
2003-06-16 22:22:11 +00:00
Brian Gaeke 7a719ed20c Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
so that we can easily change its use to be conditional on the result of
an autoconf test later.

llvm-svn: 6723
2003-06-16 21:54:01 +00:00
Chris Lattner 3aa325766a Fix major bug in my last checkin. :(
llvm-svn: 6688
2003-06-13 16:10:26 +00:00
Chris Lattner 5eba7071e6 Remove obsolete comments about llvm-ar
llvm-svn: 6686
2003-06-12 18:57:42 +00:00
Chris Lattner 6bacaa1152 Remove duplicate pass
llvm-svn: 6631
2003-06-05 20:51:10 +00:00
Chris Lattner a965631408 Remove stupid thinko that was preventing bugpoint from working
llvm-svn: 6533
2003-06-02 04:54:29 +00:00
Chris Lattner b165ea31b7 Give better information about how the passes crash
llvm-svn: 6532
2003-06-02 04:54:16 +00:00
Chris Lattner 306f8b4934 Add support for: -o -
llvm-svn: 6485
2003-05-31 21:47:16 +00:00
Chris Lattner fdb2f4b7cd Add SRoA pass to gccas
llvm-svn: 6442
2003-05-30 19:24:06 +00:00
Chris Lattner 49fac80010 Move indvars pass after mem2reg pass where it is more likely to be useful
llvm-svn: 6441
2003-05-30 19:23:10 +00:00
Chris Lattner 4c46c95247 Fix formatting in file
llvm-svn: 6398
2003-05-29 15:13:15 +00:00
Misha Brukman 80f0eb3a82 Link in Sparc libs for the JIT, even on X86 to be able to support debugging
of Sparc JIT (printing out instrs) on X86. Con: this increases linking time.

llvm-svn: 6361
2003-05-27 21:42:05 +00:00
Chris Lattner ecf2020cf7 Remove ugly hack (that I put in originally) for building in trace stuff
automatically in LLC

llvm-svn: 6358
2003-05-27 21:23:02 +00:00
Chris Lattner e320c9215d Add compatibility option
llvm-svn: 6354
2003-05-27 19:15:11 +00:00
Brian Gaeke b752116230 Remove ".bc" from the end of InputFile if it is there, in
tools/lli/lli.cpp:main().

llvm-svn: 6317
2003-05-23 20:28:07 +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
Brian Gaeke 61a05da4d5 Clarify BugDriver.cpp:BugDriver::ParseInputFile()'s return values in its
explanatory comment.

llvm-svn: 6308
2003-05-23 05:34:32 +00:00
Chris Lattner 02a168310b Kill using declarations
llvm-svn: 6292
2003-05-22 20:13:16 +00:00
Chris Lattner d9b159587b Allow disabling final cleanups
llvm-svn: 6271
2003-05-21 20:38:59 +00:00
Chris Lattner 2b3ab562f6 Increase odds that this won't bork things
llvm-svn: 6267
2003-05-21 19:41:31 +00:00
Chris Lattner f327467e4e Get rid of really old makefile cruft
llvm-svn: 6218
2003-05-14 21:31:31 +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 df705a6d02 Add a disable-verify option
llvm-svn: 6155
2003-05-12 22:12:44 +00:00
Chris Lattner ebc5f1944e Move static stuff to an anonymous namespace
llvm-svn: 6154
2003-05-12 22:08:58 +00:00
Chris Lattner a95548f56c Print filename correctly
llvm-svn: 6119
2003-05-12 14:32:04 +00:00
Chris Lattner 966e1a20ce The JIT is the default mode for LLI now
llvm-svn: 6118
2003-05-12 14:31:57 +00:00
Chris Lattner 823ce22ef2 Make a comment more accurate
llvm-svn: 5991
2003-05-03 03:20:36 +00:00
Chris Lattner 7709ec5df5 Add support for debugging miscompilations with the use of the JIT or CBE!
llvm-svn: 5990
2003-05-03 03:19:41 +00:00
Chris Lattner 9e97f4acb6 Bugpoint is always verbose, eliminate option
llvm-svn: 5989
2003-05-03 03:18:41 +00:00
Misha Brukman f3d3bcb485 The Grammar Police is out on patrol.
llvm-svn: 5985
2003-05-03 02:16:43 +00:00
Chris Lattner e22031edfe Add an instcombine pass before levelraise
llvm-svn: 5980
2003-05-02 18:19:05 +00:00
Chris Lattner 23f358bb52 Add a new option to disable stripping of bytecode files
llvm-svn: 5969
2003-04-28 03:28:56 +00:00
Chris Lattner 4f6cdbdf81 Remove two fields from TargetData which are target specific.
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner 8d8de422dd Add options to disable simplification with passes, in case one of them crashes
llvm-svn: 5950
2003-04-25 22:08:12 +00:00
Chris Lattner 8d6d4257a0 Make sure to copy double alignment as well
llvm-svn: 5936
2003-04-25 06:06:13 +00:00
Chris Lattner d64b2de3c8 Kill using declarations
llvm-svn: 5934
2003-04-25 05:26:11 +00:00
Chris Lattner 21a7218c5f Make sure to add a targetdata instance to the passmanager, and make it match the
one in use by the TargetMachine

llvm-svn: 5931
2003-04-25 05:22:29 +00:00
Chris Lattner 0347cda8b8 Rename Kept -> Suffix
FIX problem where we were incorrectly putting the prefix of the list into the "suffix" list.

llvm-svn: 5926
2003-04-25 03:16:33 +00:00
Chris Lattner 4a1a9d2cdd Rename Kept -> Suffix
Fix problem where we accidentally returned KeepPrefix instead of KeepSuffix!

llvm-svn: 5925
2003-04-25 03:16:05 +00:00
Chris Lattner 65e5f653fd Big programs have tons of global variable initializers, and most passes don't care
about them.  Try to delete them if it doesn't affect the passes.

llvm-svn: 5918
2003-04-25 00:53:05 +00:00
Chris Lattner b0143880f4 When cleaning up the final bytecode file, make sure to run DTE as well
llvm-svn: 5917
2003-04-25 00:52:30 +00:00
Chris Lattner f32939bbc9 Speed up convergence significantly and also reduce the size of testcases by making large portions of a function's CFG dead at a time.
llvm-svn: 5915
2003-04-24 23:51:38 +00:00
Chris Lattner de39f2bdac The big fix is this change:
-    if (I->isExternal() && !Functions.count(I))
+    if (!I->isExternal() && !Functions.count(I))

We were not actually deleting any functions from the module!

llvm-svn: 5914
2003-04-24 22:54:06 +00:00
Chris Lattner 10c0469be1 Remove dead functions
llvm-svn: 5913
2003-04-24 22:53:24 +00:00
Chris Lattner c3380918a5 Make sure that deleted functions have external linkage
llvm-svn: 5912
2003-04-24 22:53:01 +00:00
Chris Lattner 1d080f24c5 Use the list reducer to improve convergence speed and to support crashes that
only occur when multiple passes interact or when multiple functions exist in a module

llvm-svn: 5911
2003-04-24 22:24:58 +00:00
Chris Lattner ba159e2824 Adjust to match new ListReducer interface
Move function to generic code

llvm-svn: 5910
2003-04-24 22:24:22 +00:00
Chris Lattner 69f8e6f7aa Allow reducer interfaces to mutate the lists passed in
llvm-svn: 5909
2003-04-24 22:23:56 +00:00
Chris Lattner 39388ca08e Move function from Miscompilation.cpp
llvm-svn: 5908
2003-04-24 22:23:34 +00:00
Chris Lattner 9f5a197eb6 Move the ListReducer Class into it's own header file instead of living in Miscompilation.cpp
llvm-svn: 5907
2003-04-24 20:16:29 +00:00
Chris Lattner b052843bd2 Allow bugpoint to try new an different methods for pruning down lists
llvm-svn: 5905
2003-04-24 19:32:42 +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 aa038c856a Remove support for "target data" pass ctors
llvm-svn: 5900
2003-04-24 18:36:41 +00:00
Chris Lattner 0e48f8cb51 LevelRaise now gets target data from passmanager
llvm-svn: 5898
2003-04-24 18:26:03 +00:00
Chris Lattner 16a413103c Implement support for bugpoint to identify which FUNCTION an optimization
is miscompiling.

llvm-svn: 5893
2003-04-24 17:02:17 +00:00
Chris Lattner 1b35bee37c Print where reference output goes
llvm-svn: 5891
2003-04-23 20:41:18 +00:00
Chris Lattner 03507809a0 The new CFrontend generates LOTs of basic blocks that just fall through and do
other funky stuff.  Clean it up early.

llvm-svn: 5889
2003-04-23 20:40:42 +00:00
Chris Lattner 68efaa7ad9 Allow specifying an input file for the program being executed
llvm-svn: 5888
2003-04-23 20:31:37 +00:00
Chris Lattner 7d4c04c99a We now need to link libscalar to get the switch lowering pass
llvm-svn: 5874
2003-04-23 16:43:02 +00:00
Chris Lattner e695da3f54 Remove unnecessary &*
llvm-svn: 5873
2003-04-23 16:38:00 +00:00
Chris Lattner cebde8d74c Build the appropriate target machine for the input pointer size and endianness
llvm-svn: 5838
2003-04-22 18:10:32 +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 82f626e951 Eliminate some compatibility stuff no longer needed :P
llvm-svn: 5812
2003-04-18 23:38:09 +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 52c7138d22 Don't support codegen passes in opt
llvm-svn: 5797
2003-04-16 23:02:16 +00:00
Chris Lattner 51bdb6156b Remove codegen libraries to speed up linking opt
llvm-svn: 5796
2003-04-16 22:55:55 +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 f46a02c88e Give verbose error messages if bytecode file cannot be parsed
llvm-svn: 5789
2003-04-16 20:51:36 +00:00
Chris Lattner 12fe9b47cc Improve compatibility with system AS further by allowing input from stdin
llvm-svn: 5780
2003-04-16 17:49:18 +00:00