1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

938 Commits

Author SHA1 Message Date
Chris Lattner
da25645be4 Fix problem I introduced in bugpoint with the cleanup functions
llvm-svn: 7549
2003-08-03 22:29:43 +00:00
Chris Lattner
64fade1536 DEBUG got moved to Debug.h
llvm-svn: 7491
2003-08-01 22:13:59 +00:00
Chris Lattner
cd252af3e1 Use the new FileUtilities library to do diff'ing of files
llvm-svn: 7484
2003-08-01 20:29:45 +00:00
Chris Lattner
cba4e65559 Use the C++, more portable, deleter
llvm-svn: 7483
2003-08-01 20:29:18 +00:00
Chris Lattner
d2ef0a77d5 Don't emit modules with lots of cruft hanging off of them.
llvm-svn: 7478
2003-08-01 16:14:33 +00:00
Chris Lattner
ef04e86804 Parameterize the performFinalCleanups a bit
llvm-svn: 7477
2003-08-01 16:13:49 +00:00
Misha Brukman
e9565593a6 Ignore intrinsic functions -- don't mangle their names or rewrite calls to them.
llvm-svn: 7438
2003-07-30 21:45:20 +00:00
Misha Brukman
3c2462bb76 CodeGeneratorBug.cpp:
* Temporarily externing InputArgv to print it out for the benefit of LLI command
  needed to reproduce the result.
* Print out the list of functions currently being tested
* ListReducer now returns a bool if there was a failure, so test for it

ListReducer.h:
* Handle the case where there is no problem by returning true if failure is
  found. Also correctly handles the case when there is only 1 pass/function.

Miscompilation.cpp:
* ListReducer now returns a bool if there was a failure, so test for it

llvm-svn: 7434
2003-07-30 20:15:56 +00:00
Misha Brukman
10e9e036c2 * Moved InputArgv out of anonymous scope to be extern'd in another file.
* Added DEBUG() statements to print out parameters passed to executing programs
* Actually ADD parameters to a program running via the JIT (using vector<char*>)

llvm-svn: 7433
2003-07-30 20:15:44 +00:00
Misha Brukman
f41d2acc8d Moved definition of InputArgv into ExecutionDriver.cpp -- it is only used there.
llvm-svn: 7427
2003-07-30 17:59:23 +00:00
Misha Brukman
a38f409401 Use a vector<char*> instead of char*[] so that we can add arbitrary number of
parameters, such as command-line arguments that the executing program gets via
bugpoint.

llvm-svn: 7423
2003-07-30 17:44:15 +00:00
Chris Lattner
fdcda7baa4 Add variable to capture arguments that should be passed to the user program
This is unused so far.

llvm-svn: 7422
2003-07-30 17:36:07 +00:00
Misha Brukman
6f05e9ea0c Revert change: default architecture is never set, it is guessed from input
bytecode file. This means that LLC on X86 will compile to Sparc assembly given a
64-bit input bytecode file...

llvm-svn: 7419
2003-07-30 15:29:55 +00:00
Misha Brukman
3564e354b3 * Disambiguate symbols before we start splitting module by functions
* Moved DisambiguateGlobalSymbols() out of the ReduceMisCodegenFunctions class
* Added an assert to have a cleaner exit if `main' is not found in the module

llvm-svn: 7380
2003-07-29 16:02:28 +00:00
Misha Brukman
397c1b8f48 Implemented cleanups as suggested by Chris:
* Use Module::getNamedFunction() to delete "main" instead of using a loop
* Compare function pointers instead of function names to determine equivalence
* Simplified creation of a 2-element vector containing zeroes
* Manually performed LICM on code
* Added an abort() in case a function we're considering occurs in something that
  is not an instruction
* Use DEBUG() around code sections instead of just in a statement in a loop,
  because GCC's DCE may not be good enough to completely remove it in a release
  build
* Print out a command that can be directly copied-and-pasted to re-execute
* Instead of just checking if a symbol begins with a dot and fixing it
  accordingly, use Mangler and fix all the problems (invalid chars in C symbol
  names) entirely
* The new `main' function has external linkage

llvm-svn: 7371
2003-07-28 21:07:39 +00:00
Misha Brukman
216406a10b Added comment to function isExecutingJIT()
llvm-svn: 7370
2003-07-28 20:59:16 +00:00
Misha Brukman
844d79f8f5 BugDriver.h:
* Added method to query if BugDriver is executing the JIT currently.
  This provides the ability in adding code that is conditionally executed in
  codegen debugging phase.

CodeGeneratorBug.cpp:
* Delete test functions from the Safe module
* Code conditionally added when debugging the JIT:
  use the lazy resolver function added to Emitter.cpp to get function pointer
  by name. When compiled into an .so, this is the only way to get a pointer to
  an external function
* Added a symbol disambiguator which will keep symbols uniquely named across
  modules
* Delete generated files by default
* The function `main' *must* stay in the .bc file for the JIT, but that prevents
  debugging it alone. This patch makes the old `main' become `old_main' and adds
  a new function named `main' which just calls the original with the same
  parameters, thereby keeping functionality the same.

ExecutionDriver.cpp:
* Returned to getting unique filenames
* Simplified code choosing between using and not using shared library option

llvm-svn: 7364
2003-07-28 19:16:14 +00:00
Misha Brukman
f4702ed4d1 Add in support to load shared objects (-load is provided by Support library).
llvm-svn: 7360
2003-07-28 19:06:19 +00:00
Misha Brukman
914429c42b Made a bunch of cleanups, as per Chris' recommendations:
* Removed unused global and member variables
* Fixed comments (CodeGeneratorBug.cpp)
* Check for possibly failing GCC::create() and CBE::create()
* Remove generated files after diffing the output (e.g., shared object)
* Instead of using std::for_each, use explicit loops as std::for_each may
  duplicate the functor, and ours carries state
* Changed member var from cl::opt<std::string> to just std::string
* Fixed doxygen comments
* Fixed string comparisons to use [ str.empty() ] instead of [ str == "" ]
* Cache instances of CBE and GCC in BugDriver across compilations and executions
  while testing tools.

llvm-svn: 7302
2003-07-24 21:59:10 +00:00
Misha Brukman
e98a7e97d9 Major addition to bugpoint: ability to debug code generators (LLC and LLI).
The C backend is assumed correct and is used to generate shared objects to be
loaded by the other two code generators.

LLC debugging should be functional now, LLI needs a few more additions to work,
the major one is renaming of external functions to call the JIT lazy function
resolver.

Bugpoint now has a command-line switch -mode with options 'compile' and
'codegen' to debug appropriate portions of tools.

ExecutionDriver.cpp: Added implementations of AbstractInterpreter for LLC and
GCC, broke out common code within other tools, and added ability to generate C
code with CBE individually, without executing the program, and the GCC tool can
generate executables shared objects or executables.

If no reference output is specified to Bugpoint, it will be generated with CBE,
because it is already assumed to be correct for the purposes of debugging using
this method. As a result, many functions now accept as an optional parameter a
shared object to be loaded in, if specified.

llvm-svn: 7293
2003-07-24 18:17:43 +00:00
Misha Brukman
f5b33e92c2 Fixed misspelling.
llvm-svn: 7223
2003-07-21 21:58:16 +00:00
Chris Lattner
7f36f7e9f0 Remove instloops library
llvm-svn: 7210
2003-07-21 19:07:27 +00:00
Misha Brukman
582cf5be31 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
fa520f62c4 Added pass to instrument backedges for lightweight tracing
llvm-svn: 7202
2003-07-18 16:25:40 +00:00
Misha Brukman
5de3e14206 The word separate' only has one e'.
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Misha Brukman
6b2cd003d4 Converted tabs to spaces.
llvm-svn: 7139
2003-07-10 16:35:17 +00:00
Misha Brukman
543aedd7d0 Fixed indentation.
llvm-svn: 7122
2003-07-07 22:28:42 +00:00
Misha Brukman
009e42dd43 * 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
258dfc0319 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner
caa0d010d6 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
622df692df 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
ca92cc4853 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
bc15c235dd 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
1eb4533b66 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
85559692cb Minor cleanups
llvm-svn: 6799
2003-06-20 15:49:04 +00:00
Chris Lattner
daebdb2358 Funcresolve no longer performs nicification of resolved functions
instcombine does this

llvm-svn: 6787
2003-06-19 17:03:51 +00:00
Brian Gaeke
667447173d tools/llc/llc.cpp: Make "-o -" work.
llvm-svn: 6780
2003-06-18 21:43:33 +00:00
Brian Gaeke
19420e8daf 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
a7bf3dea5c Reindent code to match the rest of the file
llvm-svn: 6772
2003-06-18 18:46:08 +00:00
Chris Lattner
7b1df04748 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
17f041ba98 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
6d0553444b 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
0fc18257a9 The never-ending odyssey trying to get sparc to link
llvm-svn: 6747
2003-06-17 18:19:52 +00:00
Chris Lattner
85f1b38638 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
0c7e4fdfa2 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
ed38cd7aa9 Whoops, didn't mean to check that in :(
llvm-svn: 6743
2003-06-17 15:46:34 +00:00
Chris Lattner
1afd194a33 Use more structured command line option processing
llvm-svn: 6742
2003-06-17 15:43:13 +00:00
Chris Lattner
493103ea3b 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
9fa396e6c7 Remove usage of alloca
llvm-svn: 6726
2003-06-16 22:22:11 +00:00
Brian Gaeke
4681b27a92 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
15bfe02e6f Fix major bug in my last checkin. :(
llvm-svn: 6688
2003-06-13 16:10:26 +00:00
Chris Lattner
f90b0e49fa Remove obsolete comments about llvm-ar
llvm-svn: 6686
2003-06-12 18:57:42 +00:00
Chris Lattner
dec82c2ca1 Remove duplicate pass
llvm-svn: 6631
2003-06-05 20:51:10 +00:00
Chris Lattner
c3373f42ce Remove stupid thinko that was preventing bugpoint from working
llvm-svn: 6533
2003-06-02 04:54:29 +00:00
Chris Lattner
b7a4d035d7 Give better information about how the passes crash
llvm-svn: 6532
2003-06-02 04:54:16 +00:00
Chris Lattner
037fce29a8 Add support for: -o -
llvm-svn: 6485
2003-05-31 21:47:16 +00:00
Chris Lattner
a05571b144 Add SRoA pass to gccas
llvm-svn: 6442
2003-05-30 19:24:06 +00:00
Chris Lattner
e4108c9550 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
67b4289b39 Fix formatting in file
llvm-svn: 6398
2003-05-29 15:13:15 +00:00
Misha Brukman
4931c59635 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
f8db81aac0 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
c8e346caeb Add compatibility option
llvm-svn: 6354
2003-05-27 19:15:11 +00:00
Brian Gaeke
b9ec46415f 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
b599881570 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
5eee0dd116 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
ea946cf5c1 Kill using declarations
llvm-svn: 6292
2003-05-22 20:13:16 +00:00
Chris Lattner
4875906a69 Allow disabling final cleanups
llvm-svn: 6271
2003-05-21 20:38:59 +00:00
Chris Lattner
5a8e740420 Increase odds that this won't bork things
llvm-svn: 6267
2003-05-21 19:41:31 +00:00
Chris Lattner
add97ceef3 Get rid of really old makefile cruft
llvm-svn: 6218
2003-05-14 21:31:31 +00:00
Chris Lattner
a929e45913 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
229be7a063 Add a disable-verify option
llvm-svn: 6155
2003-05-12 22:12:44 +00:00
Chris Lattner
4596303925 Move static stuff to an anonymous namespace
llvm-svn: 6154
2003-05-12 22:08:58 +00:00
Chris Lattner
8b8e1625e1 Print filename correctly
llvm-svn: 6119
2003-05-12 14:32:04 +00:00
Chris Lattner
5d3b17a4cc The JIT is the default mode for LLI now
llvm-svn: 6118
2003-05-12 14:31:57 +00:00
Chris Lattner
63f5ef84be Make a comment more accurate
llvm-svn: 5991
2003-05-03 03:20:36 +00:00
Chris Lattner
198cc8f556 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
b65c30446d Bugpoint is always verbose, eliminate option
llvm-svn: 5989
2003-05-03 03:18:41 +00:00
Misha Brukman
7257cc718d The Grammar Police is out on patrol.
llvm-svn: 5985
2003-05-03 02:16:43 +00:00
Chris Lattner
08b4007a7c Add an instcombine pass before levelraise
llvm-svn: 5980
2003-05-02 18:19:05 +00:00
Chris Lattner
0316a440a1 Add a new option to disable stripping of bytecode files
llvm-svn: 5969
2003-04-28 03:28:56 +00:00
Chris Lattner
bbe1aba425 Remove two fields from TargetData which are target specific.
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner
e05ccb1be2 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
86ff9b94a9 Make sure to copy double alignment as well
llvm-svn: 5936
2003-04-25 06:06:13 +00:00
Chris Lattner
658693c26d Kill using declarations
llvm-svn: 5934
2003-04-25 05:26:11 +00:00
Chris Lattner
5efddeb447 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
ff58b89809 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
7114e0ee34 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
8a549d117d 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
dcae180f95 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
9c2869eca8 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
15574dd30f 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
0df20905d4 Remove dead functions
llvm-svn: 5913
2003-04-24 22:53:24 +00:00
Chris Lattner
7a2b711c95 Make sure that deleted functions have external linkage
llvm-svn: 5912
2003-04-24 22:53:01 +00:00
Chris Lattner
ad5fa07a44 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
e09e448832 Adjust to match new ListReducer interface
Move function to generic code

llvm-svn: 5910
2003-04-24 22:24:22 +00:00
Chris Lattner
3bfc9a1e4f Allow reducer interfaces to mutate the lists passed in
llvm-svn: 5909
2003-04-24 22:23:56 +00:00
Chris Lattner
5b90b2a7d4 Move function from Miscompilation.cpp
llvm-svn: 5908
2003-04-24 22:23:34 +00:00
Chris Lattner
f6d04c9d0c 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
d7a7ef633f 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
4a984c606f 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
1228ad2415 Remove support for "target data" pass ctors
llvm-svn: 5900
2003-04-24 18:36:41 +00:00
Chris Lattner
18f2992e5e LevelRaise now gets target data from passmanager
llvm-svn: 5898
2003-04-24 18:26:03 +00:00
Chris Lattner
0b66fe7194 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
343d952a53 Print where reference output goes
llvm-svn: 5891
2003-04-23 20:41:18 +00:00
Chris Lattner
14f89ddf52 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
d44e355c9c Allow specifying an input file for the program being executed
llvm-svn: 5888
2003-04-23 20:31:37 +00:00
Chris Lattner
9938a43aac 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
796281cf86 Remove unnecessary &*
llvm-svn: 5873
2003-04-23 16:38:00 +00:00
Chris Lattner
ae39f7112f 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
cfac8ce5da Add support for allowing the user to extend the GCCLD searchpath
llvm-svn: 5825
2003-04-21 19:53:24 +00:00
Chris Lattner
e3fca9bc04 Eliminate useless duplicate libraries
llvm-svn: 5823
2003-04-19 23:07:33 +00:00
Chris Lattner
8b99be746e 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
f53dee47b8 Add crufty compatibility stuff for ld
llvm-svn: 5813
2003-04-18 23:38:22 +00:00
Chris Lattner
b53f5d3a9f Eliminate some compatibility stuff no longer needed :P
llvm-svn: 5812
2003-04-18 23:38:09 +00:00
Chris Lattner
60bb70a682 Use anonymous namespace instead of "static"
Kill using decl

llvm-svn: 5811
2003-04-18 23:01:25 +00:00
Chris Lattner
dd3d3438c1 Don't support codegen passes in opt
llvm-svn: 5797
2003-04-16 23:02:16 +00:00
Chris Lattner
6a3b90dfad Remove codegen libraries to speed up linking opt
llvm-svn: 5796
2003-04-16 22:55:55 +00:00
Chris Lattner
4fa3b88238 Allow the user to disable the internalize pass
llvm-svn: 5792
2003-04-16 21:43:22 +00:00
Chris Lattner
fa428e3417 Give verbose error messages if bytecode file cannot be parsed
llvm-svn: 5789
2003-04-16 20:51:36 +00:00
Chris Lattner
9d614bf2d1 Improve compatibility with system AS further by allowing input from stdin
llvm-svn: 5780
2003-04-16 17:49:18 +00:00
Chris Lattner
951662218c * Get rid of using declaration
* Add two compatibility options to work better with new GCC frontend

llvm-svn: 5779
2003-04-16 17:41:08 +00:00
Chris Lattner
7c29feaeb7 Namespacify command line options
llvm-svn: 5778
2003-04-16 17:34:29 +00:00
Chris Lattner
6024ecfc43 Minor tweak
llvm-svn: 5758
2003-03-31 17:30:35 +00:00
Chris Lattner
03df18f1c2 Make sure that intermediate code is verifier clean to avoid wierd problems.
llvm-svn: 5723
2003-03-07 18:17:13 +00:00
Chris Lattner
b58da8ab04 * Reduce the number of useless bytecode files produced by bugpoint.
- This also speeds it up as the bytecode writer isn't terribly fast.
* Add a new cleanup pass after everything else to run -funcresolve -globaldce

llvm-svn: 5668
2003-02-28 16:13:20 +00:00
Chris Lattner
ea424f3aff Rename -no-* to -disable-*
llvm-svn: 5642
2003-02-26 20:00:41 +00:00
Chris Lattner
f170a0d80f Make printing messages nicer
llvm-svn: 5616
2003-02-24 20:07:54 +00:00
Chris Lattner
8b72239415 Add new -no-verify option
llvm-svn: 5542
2003-02-12 18:45:08 +00:00
Chris Lattner
0005ea2a7f Add a new -no-output option, useful for -aa-eval tests.
llvm-svn: 5541
2003-02-12 18:43:33 +00:00
Chris Lattner
649a63bd45 Fix build problem on sparc
llvm-svn: 5428
2003-01-29 18:15:34 +00:00
Chris Lattner
e6f7b214de Make bugpoint *much* more powerful, giving it the capability to delete instructions
out of a large function to reduce it.

llvm-svn: 5408
2003-01-23 02:48:33 +00:00
Chris Lattner
e3b4ef8e1a Allow creating of passes like levelraise which use a targetdata ctor
llvm-svn: 5403
2003-01-22 23:24:11 +00:00
Chris Lattner
598270f39d link with static versions of some libs to avoid having to pull in all of ipo/ipa and datastructure at all
llvm-svn: 5402
2003-01-22 22:14:04 +00:00
Chris Lattner
0d35f25ed7 Fix didn't fix the race condition in the makefiles
llvm-svn: 5394
2003-01-22 15:41:10 +00:00
Chris Lattner
7964483787 Fix race condition in Makefile
llvm-svn: 5380
2003-01-21 15:20:50 +00:00
Chris Lattner
abe1b658e7 * Prune down library list. In particular, llc doesn't need all of IPO, and none of data structure and IPA completely!
* Do not keep symbols by default!

llvm-svn: 5375
2003-01-19 21:55:43 +00:00
Chris Lattner
bdb65e864f Rename header
llvm-svn: 5283
2003-01-14 22:57:15 +00:00
Chris Lattner
c582c69c7a Link in lots o libraries
llvm-svn: 5269
2003-01-14 21:30:30 +00:00
Chris Lattner
cffd554b7f No longer need scalaropts lib
llvm-svn: 5252
2003-01-13 00:58:18 +00:00
Chris Lattner
4b2c56d87f Eliminate direct access to TargetData structure
llvm-svn: 5156
2002-12-28 20:00:00 +00:00
Chris Lattner
1214348847 Fix compilation on GCC 3.2
llvm-svn: 5136
2002-12-24 00:44:34 +00:00
Chris Lattner
1897b07db2 Don't try to buidl jello
llvm-svn: 5135
2002-12-24 00:44:26 +00:00
Chris Lattner
2ee368e312 Fixes to compile with GCC 3.2
llvm-svn: 5134
2002-12-24 00:39:16 +00:00
Chris Lattner
e2857c2d41 Jello is now part of LLI
llvm-svn: 5133
2002-12-24 00:14:25 +00:00
Chris Lattner
42057e4d2a Substantial changes to refactor LLI to incorporate both the Jello JIT and
the traditional LLI interpreter

llvm-svn: 5125
2002-12-23 23:59:41 +00:00
Chris Lattner
1bb5148632 X86 target machine is now parameterizable
llvm-svn: 5124
2002-12-23 23:55:01 +00:00
Chris Lattner
2af84f79e3 New files for miscompilation detection
llvm-svn: 5120
2002-12-23 23:50:16 +00:00
Chris Lattner
6788e95757 Implement the start of the miscompilation detection stuff
llvm-svn: 5119
2002-12-23 23:49:59 +00:00
Brian Gaeke
8f7c7a40c5 brg
Add statistic for number of bytes of data area initialized.
We used this statistic in collecting data for the paper, but I forgot
to commit it.

llvm-svn: 5112
2002-12-22 18:53:23 +00:00
Chris Lattner
9a6368cb87 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
3aecb5fcd6 Pass command line arguments to main
llvm-svn: 5027
2002-12-13 16:48:57 +00:00
Chris Lattner
ab38002b81 Add statistic
llvm-svn: 5026
2002-12-13 15:28:42 +00:00
Misha Brukman
0550d7ead0 Made status output debug-only (for testing diffs against lli).
llvm-svn: 5022
2002-12-13 13:15:36 +00:00
Brian Gaeke
641c6fa60a brg
InstSelectSimple.cpp: Add stub implementation of visitFreeInst.
 Add comments that mention how we are failing to implement malloc/free.
 Add initial implementation of visitAllocaInst.

X86TargetMachine.cpp: Include llvm/Transforms/Scalar.h.
 Add LowerAllocations pass before instruction selection.

jello/Makefile: Add scalaropts.a.

llvm-svn: 4994
2002-12-13 06:46:31 +00:00
Chris Lattner
73433b07b9 Implement branches
llvm-svn: 4988
2002-12-13 05:40:28 +00:00
Brian Gaeke
9b38597288 This checkin is brought to you by the brian gaeke allnighter fund.
(lib/Target/X86) InstSelectSimple.cpp:
 Include llvm/DerivedTypes.h and iostream.
 Refactor visitMul out into a wrapper around doMultiply(), so that we
  can do multiplications on temporary values when we are doing
  getelementptrs.
 Refactor part of getReg out into makeAnotherReg, so that we can create
  registers willy-nilly to hold temporary values, when we are doing
  getelementptrs.
 Add stub implementations of visitMallocInst and visitAllocaInst.
 Add initial implementation of visitGetElementPtrInst.
 In copyConstantToRegister:
  We throw a *lot* of our asserts here. So, when we want to throw an
   assert, print out to stderr whatever expr or whatever constant made
   us barf.
  Support copying ConstantPointerNull to register, using a move immediate
   of zero.
 Rename FLDr4 and FLDr8 to FLDr32 and FLDr64, so that they match the meanings
  of the numbers in the other instruction names. All uses modified.
 Teach visitCallInst to extract byte- and short-class return values
  from subregs of EAX.  Add a FIXME note about how we would do it for
  float-class return values.
 Add a FIXME note about how we would cast float to int and back.

X86InstrInfo.def:
 Rename FLDr4 and FLDr8 to FLDr32 and FLDr64, so that they match the meanings
  of the numbers in the other instruction names. All uses modified.

(tools/jello) GlobalVars.cpp:
 Include iostream.
 If we have to emit a floating-point constant to memory, gamble and use
  the same method as for ints.
 If we have to emit a ConstantPointerNull to memory, try using a "void *"
  and "NULL".
 Otherwise, if we are going to throw an assert, print out whatever constant
  made us barf, first.

llvm-svn: 4973
2002-12-12 15:33:40 +00:00
Misha Brukman
46aa1be828 ipa.a only needs to be mentioned once, and spaces should be used instead of
tabs for readability.

llvm-svn: 4970
2002-12-12 05:29:32 +00:00
Vikram S. Adve
03e6fa5804 Fix link errors due to new IPModRef pass.
llvm-svn: 4960
2002-12-09 05:53:11 +00:00
Vikram S. Adve
4c20f7764d Repeat ipa.a. Since IPModRef is currently only used in analysis.o,
it was causing linking errors.

llvm-svn: 4959
2002-12-09 04:46:25 +00:00
Chris Lattner
f525e2f95e Add support to count the number of dynamic instructions executed by LLI
llvm-svn: 4955
2002-12-08 05:51:08 +00:00
Chris Lattner
2c4687b0ed Only build jello when compiling on X86
llvm-svn: 4938
2002-12-06 03:53:40 +00:00
Chris Lattner
a87c79a3fe Fix to make jello compile on Sparc even though it won't run.
llvm-svn: 4937
2002-12-06 03:52:51 +00:00
Chris Lattner
728e4fbd59 Add support for global value references
llvm-svn: 4908
2002-12-04 06:45:40 +00:00
Chris Lattner
9080df6970 Initial checkin of global var support code
llvm-svn: 4904
2002-12-04 06:09:04 +00:00
Chris Lattner
b7256f170e Implement simple global variable support
llvm-svn: 4903
2002-12-04 06:04:17 +00:00
Chris Lattner
7a95d4ead1 Implement external function support
llvm-svn: 4902
2002-12-04 06:04:07 +00:00
Chris Lattner
34e164bb30 Initial checkin of Unresolved function fault handler
llvm-svn: 4900
2002-12-04 05:05:26 +00:00
Chris Lattner
913c44f05d Implement lazy resolution of function calls
llvm-svn: 4899
2002-12-04 04:47:34 +00:00
Chris Lattner
b2fe33ac89 Initial checkin of virtual machine implementation.
We can now run very trivial test cases

llvm-svn: 4894
2002-12-03 22:48:59 +00:00
Chris Lattner
e7f81463a5 Disable timing of bytecode loader
llvm-svn: 4887
2002-12-03 19:42:26 +00:00
Chris Lattner
3f94a45ff8 Final tweak to printer
llvm-svn: 4881
2002-12-03 06:33:30 +00:00
Chris Lattner
d412654b95 Implement trivially simple debugger for MachineCodeEmitter interface
llvm-svn: 4880
2002-12-03 06:09:26 +00:00
Chris Lattner
d29ab7a539 Add initial support for machine code emission
llvm-svn: 4865
2002-12-02 21:22:04 +00:00
Chris Lattner
85ffbadcce Build bugpoint
llvm-svn: 4790
2002-11-20 22:28:18 +00:00
Chris Lattner
ceba1ddf2f Initial checkin of bugpoint
llvm-svn: 4789
2002-11-20 22:28:10 +00:00
Chris Lattner
adea9960ab Move the function extractor pass from tools/extract into lib/Xform/IPO
llvm-svn: 4759
2002-11-19 18:42:59 +00:00
Chris Lattner
0ff016c9e2 Remove extra target.a entry
llvm-svn: 4756
2002-11-19 16:59:41 +00:00
Chris Lattner
a91cf7f41b Add a timer to evaluate bytecode load time and space requirements
llvm-svn: 4679
2002-11-10 06:55:02 +00:00
Vikram S. Adve
cf72aec30d Don't build llc symbols by default.
llvm-svn: 4565
2002-11-06 16:10:57 +00:00
Chris Lattner
b49552a328 Give passnames to the printer classes
llvm-svn: 4559
2002-11-06 06:16:08 +00:00
Chris Lattner
c23b57a60d No need to explicitly inclue ExportSymbols now
llvm-svn: 4543
2002-11-04 20:50:57 +00:00
Chris Lattner
ea5b4334be Implement a new -print-callgraph analysis that turns a callgraph into a dot
graph

llvm-svn: 4524
2002-11-04 02:55:30 +00:00
Vikram S. Adve
dd2ab407a6 Disable correlated expressions pass until it is reliable.
llvm-svn: 4512
2002-11-03 12:41:50 +00:00
Chris Lattner
517a31e940 Reassociate now works
llvm-svn: 4472
2002-10-31 17:13:11 +00:00
Misha Brukman
422964104e Return 0 instead of 1 for correct execution. Makes automated testing happy.
llvm-svn: 4449
2002-10-30 02:18:29 +00:00
Chris Lattner
52200beb8d Jello now builds
llvm-svn: 4430
2002-10-29 23:41:11 +00:00
Chris Lattner
fcf89885a1 * Privatize the TargetName
llvm-svn: 4418
2002-10-29 21:48:33 +00:00
Chris Lattner
eec571dce8 Allow TargetMachine to refuse static code gen
llvm-svn: 4415
2002-10-29 21:12:46 +00:00
Chris Lattner
52b4de4ae9 Convert jello to use PassManager
llvm-svn: 4414
2002-10-29 21:06:58 +00:00
Chris Lattner
c2a605c3a8 Rename Sparc.h TargetMachineImpls.h
llvm-svn: 4409
2002-10-29 20:48:09 +00:00
Chris Lattner
7bfce07f26 * Remove explicit strcmp calls
* Rename Sparc.h to TargetMachineImpls.h

llvm-svn: 4406
2002-10-29 20:45:04 +00:00
Chris Lattner
949958a00b After removing stuff from TargetMachine, we now no longer have to include
it twice.

llvm-svn: 4311
2002-10-28 01:13:07 +00:00
Chris Lattner
82c040cbef Add codegen library
llvm-svn: 4305
2002-10-28 00:54:59 +00:00
Chris Lattner
1f66b56dc7 Initial checkin of LLVM JIT, codenamed jello. This tool is not built by
default, until it becomes stable.  Even then it will only work for for X86
targets.

llvm-svn: 4285
2002-10-25 22:58:53 +00:00
Vikram S. Adve
3c20672e56 Added datastructure library to resolve link error.
llvm-svn: 4279
2002-10-25 21:17:34 +00:00
Chris Lattner
7c270463f1 * Fix extract to work with constant pointer refs correctly
* Extract makes all global vars external, so they don't have initializers

llvm-svn: 4121
2002-10-12 20:50:16 +00:00
Chris Lattner
3a13076188 - Implement a new -print-cfg option for analyze, that causes it to print the
CFG of each function in the module to 'dot' files.

llvm-svn: 4062
2002-10-07 18:38:01 +00:00
Chris Lattner
1a1a1002c4 Avoid making external global variables internal
llvm-svn: 4059
2002-10-07 18:33:53 +00:00
Chris Lattner
6eae53f5b1 - The extract tool now is sure to extract the function implementation for
the specified name instead of extracting the prototype if both exist.

llvm-svn: 4045
2002-10-06 21:30:04 +00:00
Chris Lattner
b6ec3ac95d Temporary change to make datastructure stuff link in right
llvm-svn: 4005
2002-10-01 22:41:01 +00:00
Chris Lattner
4b838cd6b5 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.

llvm-svn: 3930
2002-09-25 23:47:49 +00:00
Chris Lattner
2ccb52142f Make sure to close the file before deleting it
llvm-svn: 3905
2002-09-24 00:09:48 +00:00
Chris Lattner
d01dffe97f * Remove the -stopraise option, which is no longer needed now that we have
the -debug-pass=Arguments option
* Run instcombining BEFORE mem2reg so that getelementptr X, long 0's are
  cleaned up.  This is also important because scalar replacement of aggr.
  will want instcombine to run before it goes as well.

llvm-svn: 3879
2002-09-22 18:50:22 +00:00
Vikram S. Adve
40f70117b4 Renamed library preselect to preopts.
llvm-svn: 3841
2002-09-20 00:43:20 +00:00
Chris Lattner
2d1235521b Minor non-functionality changing changes.
llvm-svn: 3833
2002-09-19 20:48:48 +00:00
Chris Lattner
1740f763c0 Indent a comment right, add a new one
llvm-svn: 3819
2002-09-19 16:06:28 +00:00
Chris Lattner
3bedbd7335 Avoid deleting the ostream more than once.
llvm-svn: 3816
2002-09-18 23:30:05 +00:00
Vikram S. Adve
9fb62d3829 KEEP_SYMBOLS by default.
llvm-svn: 3813
2002-09-18 11:55:44 +00:00
Chris Lattner
ee9b6ce5c7 Compile sub-directories in parallel, because they don't have interdependencies
llvm-svn: 3808
2002-09-18 03:25:58 +00:00
Vikram S. Adve
c3d678fff5 gcc3.1.1 seems much more selective about what it loads from archives, and
does not link in many passes that are loaded by gcc2.95.3.  So use object
files instead of archives in many more cases.

llvm-svn: 3803
2002-09-18 02:20:58 +00:00
Chris Lattner
7e0b697190 Enable correct support for dynamic loading on Linux
llvm-svn: 3780
2002-09-17 20:40:24 +00:00
Chris Lattner
407bb6721a Enable correct support for dynamic loading on Linux
llvm-svn: 3779
2002-09-17 20:40:22 +00:00
Vikram S. Adve
b676027e03 Remove duplicate sparc entry.
llvm-svn: 3762
2002-09-16 18:28:27 +00:00
Vikram S. Adve
e37bea3d64 Use .o files instead of .a files for several cases (that don't actually
need them) until other Makefiles can be updated to build archives.

llvm-svn: 3761
2002-09-16 18:13:12 +00:00
Vikram S. Adve
d2ba65e35d Change several entries to use the .o instead of .a to expose pass options.
llvm-svn: 3754
2002-09-16 16:36:13 +00:00
Vikram S. Adve
c1a58ef078 Make all registered optimization passes available to llc.
Eliminate duplicate tracing options and use those defined by the trace passes.
Making the tracing step a module pass that runs before any llc-specific
passes.

llvm-svn: 3753
2002-09-16 16:35:34 +00:00
Vikram S. Adve
07923983c9 Add support for optimization passes that use a TargetMachine object.
llvm-svn: 3752
2002-09-16 16:09:43 +00:00
Misha Brukman
2e598f0092 Function.h is unnecessary when Module.h is included.
llvm-svn: 3716
2002-09-14 03:04:02 +00:00
Chris Lattner
7fa7135b32 Export symbols for linux
llvm-svn: 3707
2002-09-13 22:20:19 +00:00
Chris Lattner
29714643f9 * No longer need to run die after instcombine
* Run new correlated expressions pass
* Simplify the CFG (removing dead blocks, merging blocks, eliminating branches
  on constant booleans, etc) after correlated exprs pass.

llvm-svn: 3598
2002-09-06 18:41:33 +00:00
Chris Lattner
b144f8996b - Converted CWriter to be an LLVM pass.
- Convert dis to use a PassManager to do it's work.

llvm-svn: 3560
2002-08-31 00:30:15 +00:00
Chris Lattner
d8455b6f58 Get FindUsedTypes pass
llvm-svn: 3559
2002-08-31 00:29:36 +00:00
Chris Lattner
f647b9b608 - Reformat comments
- 'gccas' puts verifier in logical place in pass procession to avoid
    recomputing dominator information unneccesarily.

llvm-svn: 3553
2002-08-30 22:55:32 +00:00
Chris Lattner
2fb4346706 - 'analyze' and 'as' now explicitly verify input because AsmParser doesn't.
llvm-svn: 3552
2002-08-30 22:54:41 +00:00
Chris Lattner
f68ff7f172 - 'analyze' and 'as' now explicitly verify input because AsmParser doesn't.
llvm-svn: 3551
2002-08-30 22:54:37 +00:00
Chris Lattner
838248b35a - Eliminate the last traces of the 'analysis' namespace
llvm-svn: 3550
2002-08-30 22:53:53 +00:00
Chris Lattner
1ee5d270ec Link to analysis.o not analysis.a
llvm-svn: 3537
2002-08-30 20:25:41 +00:00
Chris Lattner
68ccf7d7ea - GCCAS now uses load value #ing for GCSE
llvm-svn: 3536
2002-08-30 20:25:25 +00:00
Chris Lattner
dd03802354 New datastructure analysis correctly uses TargetData
llvm-svn: 3525
2002-08-29 20:10:29 +00:00
Anand Shukla
a0cc5490b9 Added mapping lib in llc makefile
llvm-svn: 3514
2002-08-27 16:46:11 +00:00
Chris Lattner
2c263e2ec7 Fixed linking problems that wanted me to link to analyze.o instead of analyze.a
so now we can link to analyze.a again.

llvm-svn: 3433
2002-08-21 23:47:46 +00:00
Chris Lattner
74b04d95d7 Link in all analyses so that we get pointer analysis support built in
llvm-svn: 3427
2002-08-21 22:17:28 +00:00
Chris Lattner
38e64fffd9 Do not leak memory for passes when using -stopAfterNPasses or -stopraise
llvm-svn: 3371
2002-08-17 22:40:03 +00:00
Chris Lattner
f91e0dc64d Run GlobalDCE before deadtypeelim so that we do not retain types for global
variables that are obviously dead.  The most common case is %FILE

llvm-svn: 3370
2002-08-17 22:38:02 +00:00
Chris Lattner
a21e315db4 - Cleaned up the interface to AnalysisUsage to take analysis class names
instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument

llvm-svn: 3265
2002-08-08 19:01:30 +00:00
Chris Lattner
7a0e7379bb Only include the sparc.o file once!
llvm-svn: 3257
2002-08-07 19:42:34 +00:00
Chris Lattner
f0389c0e0b Reorder tool building sequence to more closely match the reality of what
is being worked on the most.

llvm-svn: 3196
2002-08-01 00:01:33 +00:00
Chris Lattner
15ef3929ae Changes to be GCC3.1 friendly
llvm-svn: 3187
2002-07-31 19:32:14 +00:00
Chris Lattner
0e8dd86318 Change command line option message on -q to make it more accurate
llvm-svn: 3177
2002-07-31 16:52:49 +00:00
Chris Lattner
a693390c2e Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3168
2002-07-30 21:43:25 +00:00
Chris Lattner
ea9f0c3c4e 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
2223ccb697 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3166
2002-07-30 19:52:14 +00:00
Chris Lattner
c952f6070f Remove extraneous #includes
llvm-svn: 3162
2002-07-30 19:33:19 +00:00
Chris Lattner
1c49ae55b9 Use a module analysis
llvm-svn: 3133
2002-07-29 23:02:25 +00:00
Chris Lattner
4ff6f3bf84 Seperate analysis wrapper stuff to AnalysisWrappers.cpp
llvm-svn: 3127
2002-07-29 21:24:10 +00:00
Chris Lattner
2a4b8f337a Make analyze use the Pass repository to populate it's command line argument list
llvm-svn: 3114
2002-07-27 01:08:50 +00:00
Chris Lattner
7eae7a24e5 Factor PassNamePArser out into llvm/Support/PassNameParser.h
llvm-svn: 3109
2002-07-26 21:09:32 +00:00
Chris Lattner
ec1a192b16 *** empty log message ***
llvm-svn: 3105
2002-07-26 18:40:14 +00:00
Chris Lattner
cd9bd16847 Namespace correctness is good
llvm-svn: 3088
2002-07-25 16:39:56 +00:00
Chris Lattner
9099afeef5 *** empty log message ***
llvm-svn: 3087
2002-07-25 16:31:09 +00:00
Chris Lattner
aa37e1ed8c Be more namespace correct
llvm-svn: 3086
2002-07-25 16:31:01 +00:00
Chris Lattner
2d7eb28490 REmove extra blank lines
llvm-svn: 3084
2002-07-25 15:40:38 +00:00
Chris Lattner
0ccf5689e3 *** empty log message ***
llvm-svn: 3077
2002-07-25 15:00:45 +00:00
Chris Lattner
b67e0533b7 *** empty log message ***
llvm-svn: 3044
2002-07-24 17:12:08 +00:00
Chris Lattner
5b4d1e6d6c *** empty log message ***
llvm-svn: 3040
2002-07-23 22:04:43 +00:00
Chris Lattner
147eb0032c Minor changes due to code juggled around
llvm-svn: 3039
2002-07-23 22:04:40 +00:00
Chris Lattner
5bd9f0689a Use the pass registration mechanism to populate command line options for
opt, not huge explicit gross tables.

llvm-svn: 3021
2002-07-23 18:12:22 +00:00
Chris Lattner
4c4f02c2f1 Raise pass requires an explicit TargetData member now.
llvm-svn: 3020
2002-07-23 18:09:58 +00:00
Chris Lattner
24bcbdd155 *** empty log message ***
llvm-svn: 3002
2002-07-23 17:52:38 +00:00
Chris Lattner
a1ecec3732 Convert over to new style of Makefile, where there is a difference between .o and .a libraries.
llvm-svn: 3000
2002-07-23 17:50:41 +00:00
Chris Lattner
8e5f24eaef Fix synopsis
llvm-svn: 2988
2002-07-22 02:18:09 +00:00
Chris Lattner
181438746b Add description to Enum options.
llvm-svn: 2987
2002-07-22 02:18:00 +00:00
Chris Lattner
99ad379582 *** empty log message ***
llvm-svn: 2985
2002-07-22 02:10:13 +00:00
Chris Lattner
d296fe8b1c Convert command line option processing code over to use the syntax supported
by the CommandLine 2.0 library

llvm-svn: 2984
2002-07-22 02:10:07 +00:00
Chris Lattner
5315c60ec7 Add support for bottom up closure of ds analysis
llvm-svn: 2963
2002-07-18 06:40:56 +00:00
Anand Shukla
c599f5fc93 Removed emitfuncs: now its part of instrument library
llvm-svn: 2929
2002-07-16 18:59:55 +00:00
Anand Shukla
65c5ac077e added emitfuncs pass, and disabled reassociate pass (needs fixing)
llvm-svn: 2885
2002-07-12 20:14:27 +00:00
Anand Shukla
627b2be36a Added emitfuncs pass
llvm-svn: 2884
2002-07-12 20:12:59 +00:00
Chris Lattner
58fce6cc00 Rename DataStructure to LocalDataStructures
llvm-svn: 2873
2002-07-10 22:42:53 +00:00
Vikram S. Adve
391040c398 Disabling reassociate pass until it is fixed.
llvm-svn: 2849
2002-07-09 19:53:09 +00:00
Chris Lattner
a590093513 *** empty log message ***
llvm-svn: 2813
2002-06-30 16:25:25 +00:00
Chris Lattner
63f4011a0c Clean up anands patch
llvm-svn: 2812
2002-06-30 16:25:21 +00:00
Chris Lattner
858f3734a1 Strip the symbols out of the bytecode to inflate generated executables less.
llvm-svn: 2811
2002-06-30 16:25:07 +00:00
Chris Lattner
a5eae315e5 YEs, we really do want to sort.
llvm-svn: 2810
2002-06-30 16:20:02 +00:00
Chris Lattner
5e960b5301 Yes, we REALLY DO want to run the reassociate pass.
llvm-svn: 2809
2002-06-30 16:19:14 +00:00
Anand Shukla
c28bf298bb Changes for 64bit gcc
llvm-svn: 2799
2002-06-25 21:57:48 +00:00
Anand Shukla
e367d62058 correcting makefile: incorrectly checked in wrong version earlier
llvm-svn: 2798
2002-06-25 21:44:44 +00:00
Anand Shukla
fedef1a043 Changes for 64bit gcc
llvm-svn: 2797
2002-06-25 21:43:28 +00:00
Chris Lattner
dfd421a7df MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner
d7cbd7d5d2 MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2778
2002-06-25 16:13:21 +00:00
Chris Lattner
801f0d73ed Simplify the code that adds passes so compilation can stop after any step
llvm-svn: 2775
2002-06-25 15:57:43 +00:00
Chris Lattner
18b62a13b3 Checkin descriptive note
llvm-svn: 2765
2002-06-24 16:49:55 +00:00
Chris Lattner
6011ff85b4 No need to run dce with adce right behind!
llvm-svn: 2738
2002-05-23 19:27:50 +00:00
Chris Lattner
8fab67dc39 Make sure the extracted function has external linkage, so that it doesn't
get eliminated by globaldce!

llvm-svn: 2736
2002-05-23 18:36:25 +00:00
Chris Lattner
28ff22021a Add the ADCE pass to gccas finally!
llvm-svn: 2719
2002-05-22 21:30:24 +00:00
Chris Lattner
d7932ecdd3 Build the extract utility
llvm-svn: 2717
2002-05-22 20:27:15 +00:00
Chris Lattner
62a228fcb7 Initial checkin of the "extract" utility
llvm-svn: 2716
2002-05-22 20:27:00 +00:00
Chris Lattner
35c3842eb5 Expose cfg simplification pass
llvm-svn: 2699
2002-05-21 20:05:16 +00:00
Chris Lattner
d5eb6515a1 Simplify CFG after code generation is done
llvm-svn: 2698
2002-05-21 20:05:08 +00:00
Chris Lattner
6b2ba36c18 Fix tracing code support to link in the tracing routines if neccesary.
This is required because trace code can insert calls to functions that
are (now) in an LLVM library, not a native library.

This change makes it easier to use the tracing code because the native
link options don't have to change, and it fits in a lot better with the
LLVM model.

llvm-svn: 2675
2002-05-20 21:20:08 +00:00
Chris Lattner
7563f3d1fb Remove tracing code hack
llvm-svn: 2673
2002-05-20 21:16:46 +00:00
Chris Lattner
58c7d2372e Use literal newline instead of endl
llvm-svn: 2668
2002-05-20 19:49:24 +00:00
Chris Lattner
397f44cf06 Drop something that link will never support, use gccld instead
llvm-svn: 2667
2002-05-20 19:48:55 +00:00
Vikram S. Adve
4a1f943958 Add libsparc.a a second time to resolve link errors.
llvm-svn: 2661
2002-05-19 16:01:03 +00:00
Vikram S. Adve
db5bc3b4a2 Link with test/Libraries/libinstr32.a for runtime routines
supporting tracing.  That should be moved to a "runtime" directory.

llvm-svn: 2660
2002-05-19 16:00:28 +00:00
Chris Lattner
e8c237b1ce Run another local value numbering phase after redundancy elimination
llvm-svn: 2625
2002-05-14 16:23:14 +00:00
Chris Lattner
b04d5ecc11 expose LICM pass
llvm-svn: 2614
2002-05-10 22:44:37 +00:00
Chris Lattner
97b501879c Add LICM pass to compiler
llvm-svn: 2613
2002-05-10 22:44:31 +00:00
Chris Lattner
24656ee8e4 Expose the lowerallocs pass
llvm-svn: 2602
2002-05-10 15:43:07 +00:00
Chris Lattner
25ae3ddf64 Expose the pi node insertion pass.
llvm-svn: 2594
2002-05-10 05:41:49 +00:00
Chris Lattner
c95479a283 Clean up dis so that it does not print out code in various traversal orders.
Now it only output llvm or C code.

llvm-svn: 2564
2002-05-09 01:25:55 +00:00
Chris Lattner
0c171e22a8 Expose expression reassociation
llvm-svn: 2557
2002-05-08 22:18:34 +00:00
Chris Lattner
fd2ecfc2a5 Run expression reassociation as part of gccas
llvm-svn: 2556
2002-05-08 22:18:20 +00:00
Sumant Kowshik
64cf4b95c9 *** empty log message ***
llvm-svn: 2552
2002-05-08 18:09:58 +00:00
Chris Lattner
07a6a20a96 Spell aggressive correctly
llvm-svn: 2551
2002-05-07 22:15:01 +00:00
Chris Lattner
466c66f47a Merge all include/llvm/Transforms/Scalar/* into a single Scalar.h
llvm-svn: 2538
2002-05-07 20:03:27 +00:00
Chris Lattner
5cae7abf34 Fix makefiles after shuffling passes around the libraries
llvm-svn: 2532
2002-05-07 19:27:33 +00:00
Chris Lattner
f7806b0212 Move UnifyFunctionExitNodes to Utils library: final resting place this time
llvm-svn: 2531
2002-05-07 19:18:48 +00:00
Chris Lattner
e17a86e8a2 Oops, somehow lost a slash. Fixed
llvm-svn: 2524
2002-05-07 18:39:52 +00:00
Chris Lattner
9e1c79995e 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
cb8c2d31c2 Straighten out makefiles after moving code to new Transform Utils library
llvm-svn: 2520
2002-05-07 18:18:26 +00:00
Chris Lattner
ee7b1b29a9 GCSE is faster than SCCP, and it makes SCCP's job easier, so run it first.
llvm-svn: 2503
2002-05-06 18:54:12 +00:00
Chris Lattner
6ba1c2d113 Instruction Combination can create a ton of trivially dead instructions. Remove
them with an DIE pass before more expensive optimizations are run.

llvm-svn: 2491
2002-05-06 16:52:15 +00:00
Chris Lattner
0ba1f2e45f Run DCE AFTER SCCP and GCSE!
llvm-svn: 2476
2002-05-06 03:04:17 +00:00
Chris Lattner
453a66845a Remove unneccesary pass.
llvm-svn: 2421
2002-04-30 20:53:05 +00:00
Chris Lattner
3b2084a357 These aren't tools
llvm-svn: 2412
2002-04-29 20:29:30 +00:00
Chris Lattner
9cbf621bb5 Move constant merging pass earlier
Include the SCCP pass in gccas

llvm-svn: 2410
2002-04-29 20:11:38 +00:00
Chris Lattner
9689364fee Remove InstForest from analysis namespace
llvm-svn: 2401
2002-04-29 18:13:31 +00:00
Chris Lattner
96e0c48175 Eliminate duplicate or unneccesary #include's
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner
589debc4ba Add new optional getPassName() virtual function that a Pass can override
to make debugging output a lot nicer.

llvm-svn: 2395
2002-04-29 14:57:45 +00:00
Chris Lattner
119fd9172e Rename functions to be more consistend with other pass constructors
llvm-svn: 2388
2002-04-28 21:45:36 +00:00
Chris Lattner
ec70d92221 Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA
llvm-svn: 2386
2002-04-28 21:27:06 +00:00
Chris Lattner
d17fdd5494 Eliminate the cfg namespace
llvm-svn: 2371
2002-04-28 16:21:53 +00:00
Chris Lattner
d5c0eb722e Expose the internalize pass.
llvm-svn: 2365
2002-04-28 05:49:53 +00:00
Chris Lattner
55a350ffa8 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
7c02462361 Use operator << to print modules
llvm-svn: 2360
2002-04-28 05:13:45 +00:00
Chris Lattner
f5cc80a3cb Run GCSE as part of gccas.
llvm-svn: 2340
2002-04-28 01:00:15 +00:00
Chris Lattner
c8022bc84b Expose new GCSE pass
llvm-svn: 2339
2002-04-28 00:48:17 +00:00
Chris Lattner
2f0ee1833d s/Method/Function
llvm-svn: 2336
2002-04-27 07:27:19 +00:00
Chris Lattner
536cf1b13f * Rename MethodPass class to FunctionPass
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well

llvm-svn: 2333
2002-04-27 06:56:12 +00:00
Chris Lattner
ded2679ed0 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
04c7eda945 * Add the printm pass to allow dumping the entire module after a transformation.
* s/Method/Function/

llvm-svn: 2234
2002-04-13 18:32:47 +00:00
Chris Lattner
7b28f092cb Expose funcresolve pass through opt
llvm-svn: 2231
2002-04-12 18:21:13 +00:00
Chris Lattner
b78ee9705b * 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
d69c7543b9 The cleangcc pass is brokeninto two pieces, execute both of them.
llvm-svn: 2225
2002-04-10 20:33:32 +00:00
Chris Lattner
ba71c8f7e1 Remove extranous #include
llvm-svn: 2183
2002-04-08 22:05:10 +00:00
Chris Lattner
53b18fe247 s/PrintMethodPass/PrintFunctionPass
llvm-svn: 2182
2002-04-08 22:05:01 +00:00
Chris Lattner
71b2140b94 Add #includes
s/PrintMethodPass/PrintFunctionPass

llvm-svn: 2181
2002-04-08 22:04:24 +00:00
Chris Lattner
4522bc2f02 Add support for the gnu ld -s (strip) option
llvm-svn: 2157
2002-04-08 05:18:12 +00:00
Chris Lattner
0c23bfd2d8 GCCLD actually does transformations to simplify the linked program now.
llvm-svn: 2155
2002-04-08 00:14:58 +00:00
Chris Lattner
8b16900b1b 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
471c717f9e Perform debug outputs with ->dump() instead of <<
llvm-svn: 2152
2002-04-07 22:34:44 +00:00
Chris Lattner
d61440d34f use dump method instead of Asm/Writer to do debug printing
Rename C to M because C used to be 'Class' and now we are 'Module'

llvm-svn: 2151
2002-04-07 22:34:19 +00:00
Chris Lattner
bc15ae64dd 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
dc6c89b725 Move the PromoteMemoryToRegister pass to be run _after_ the raise pointer
references pass, so it is given the chance to do some good!

llvm-svn: 2089
2002-04-01 19:45:11 +00:00
Chris Lattner
362aa65cca Makefile change for IPO's that use the Datastructure analysis stuff
llvm-svn: 2015
2002-03-28 18:10:31 +00:00
Chris Lattner
73edb721e8 Add hook for pool allocation pass
llvm-svn: 2013
2002-03-28 18:08:07 +00:00
Chris Lattner
6e01190339 Checking for Cameron
llvm-svn: 2011
2002-03-28 17:56:28 +00:00
Cameron Buschardt
788a1aaab0 Rename constructor function for mem2reg pass.
llvm-svn: 2008
2002-03-27 23:29:23 +00:00
Chris Lattner
d425cc5987 * Add support for DataStructure analysis
* Parameterize pass outputting with the printPass template, so analysis
  output can optionally take more arguments than just a stream.  The
  default output mode is just to use operator<< on the analysis.
* Remove CurrentModule hack, in favor of using printPass
* Remove special operator<<'s defined for FindUsedTypes and
  FindUnsafePointerTypes, in favor of printPass specializations
* Use std::cout instead of cout

llvm-svn: 1995
2002-03-26 22:43:12 +00:00
Vikram S. Adve
1231c34e04 Rename pass to DecomposeMultiDimRefs.
llvm-svn: 1960
2002-03-24 03:19:54 +00:00
Chris Lattner
42439b8827 Add a debugging option to gccas to cause it to not do level raise or anything
after it.

llvm-svn: 1934
2002-03-21 21:21:50 +00:00
Chris Lattner
9036b8c899 Expose dead instruction elimination pass
llvm-svn: 1877
2002-03-14 22:36:15 +00:00
Chris Lattner
6a2a2e40f3 Echo the right tool name on error
llvm-svn: 1865
2002-03-12 15:41:36 +00:00
Chris Lattner
558efd4bf0 Remove runtime library in favor of users linking against real libraries.
llvm-svn: 1853
2002-03-11 17:57:13 +00:00
Chris Lattner
4489946ab0 * Implement linking to libraries
* Pass arguments to program through shell script

llvm-svn: 1851
2002-03-11 17:49:53 +00:00
Chris Lattner
cc1fa55c61 Pull interprocedural analyses out of Analysis library into their own lib
llvm-svn: 1827
2002-03-06 18:44:29 +00:00
Chris Lattner
06711c728d Don't forget to build gccld!
llvm-svn: 1826
2002-03-06 18:05:02 +00:00
Chris Lattner
319dec9cea Since verifier and SlotCalculator are now in VMCore library, libanalysis is
no longer required

llvm-svn: 1823
2002-03-06 17:41:18 +00:00
Chris Lattner
0c342ec032 Pull callgraph out of Cfg namespace
llvm-svn: 1822
2002-03-06 17:40:37 +00:00
Chris Lattner
9287e88e26 Change to use new pass accessor functions
llvm-svn: 1817
2002-02-26 21:47:29 +00:00
Chris Lattner
e2383e8592 Change over to use new style pass mechanism, now passes only expose small
creation functions in their public header file, unless they can help it.

llvm-svn: 1816
2002-02-26 21:46:54 +00:00
Chris Lattner
5e721a352c * Make all command line arguments static
* Change -trace & -tracem options to use a 3 values enum option
* Change to use new style interface to passes

llvm-svn: 1813
2002-02-26 21:36:53 +00:00
Chris Lattner
1b9b843452 Move ProfilePaths class into ProfilePaths library, only expose a creation function
llvm-svn: 1812
2002-02-26 20:04:59 +00:00
Anand Shukla
19d77241bc Includes -paths option to trace paths in the program
llvm-svn: 1811
2002-02-26 19:57:59 +00:00
Anand Shukla
209b88c6fc Link in the PathProfiles library
llvm-svn: 1800
2002-02-26 18:29:20 +00:00
Chris Lattner
44d96e69f4 Remove hack. This is better fixed in Makefile.common
llvm-svn: 1795
2002-02-24 23:25:46 +00:00
Chris Lattner
98aa08c950 Cleanup to build with GCC 3.0.4
llvm-svn: 1794
2002-02-24 23:25:24 +00:00
Chris Lattner
dcdf0532ff Build with newer compiler, with same bug
llvm-svn: 1793
2002-02-24 23:11:05 +00:00
Chris Lattner
a3ec3f6fd0 GCC3.0.4 crashes when compiling this. Comment it out for now
llvm-svn: 1792
2002-02-24 23:03:37 +00:00
Chris Lattner
5ece03aed8 Genericize the ReversePostOrderIterator.
llvm-svn: 1785
2002-02-24 21:48:59 +00:00
Chris Lattner
3b17492321 * Expose the verifier pass as one that can be ran
* Force the verifier to run before bytecode is written

llvm-svn: 1783
2002-02-20 17:56:53 +00:00
Chris Lattner
b0a2c5546b Method.h no longer includes BasicBlock.h
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h

llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner
589decaa98 Enable register promotion pass
llvm-svn: 1740
2002-02-12 17:17:33 +00:00
Chris Lattner
fbe7890cc4 Trim down makefile, again.
llvm-svn: 1691
2002-02-04 17:37:25 +00:00
Chris Lattner
32703676f4 Cut down number of times libraries are included to link a little bit faster
llvm-svn: 1678
2002-02-04 06:43:56 +00:00
Chris Lattner
4e02006161 * Remove -noasm option. If we're not compiling, what's the point?
* convert over to pass based target backend.  Much cleaner now

llvm-svn: 1665
2002-02-03 23:43:19 +00:00
Chris Lattner
ed11b34f8d Switch over to a model where we compile each method, emit assembly, then free
machineinstr memory before starting on the next method.

llvm-svn: 1659
2002-02-03 07:54:10 +00:00
Chris Lattner
bfdc4a546a Catch the parse exception if bad input is provided. Much better than an abort
llvm-svn: 1631
2002-02-01 05:09:35 +00:00
Chris Lattner
d4cdf2337a Add mergereturn pass
llvm-svn: 1629
2002-02-01 04:54:11 +00:00
Chris Lattner
5786d62ec7 Add dependency
llvm-svn: 1620
2002-01-31 18:33:23 +00:00
Chris Lattner
c03f994e04 Fix dependency problem
llvm-svn: 1619
2002-01-31 18:33:09 +00:00
Chris Lattner
15709802b8 Resolve deps
llvm-svn: 1615
2002-01-31 15:52:41 +00:00
Chris Lattner
f03244d976 Resolve dependencies
llvm-svn: 1614
2002-01-31 15:43:11 +00:00
Chris Lattner
88bd8acf90 Convert to use new Pass framework...
llvm-svn: 1610
2002-01-31 00:47:12 +00:00
Chris Lattner
70f03681e8 PassManager is now in its own header file
MethodPass's now cannot be run on external methods

llvm-svn: 1609
2002-01-31 00:46:45 +00:00
Chris Lattner
5e70addcea PassManager is now in it's own header file
llvm-svn: 1608
2002-01-31 00:46:22 +00:00
Chris Lattner
525a04cef7 Convert analyze over to use new pass framework for its analyses
llvm-svn: 1607
2002-01-31 00:46:09 +00:00
Chris Lattner
eb93690918 Accept, but ignore -lfoo options.
llvm-svn: 1585
2002-01-25 03:59:39 +00:00
Chris Lattner
51e409d5ce Initial Checkin of gccld
llvm-svn: 1578
2002-01-24 19:12:12 +00:00
Chris Lattner
d4ebfa46da In an amazing fit of stupidity, I flipped the conditional and didn't test
it right.  Sheesh :)

llvm-svn: 1550
2002-01-22 21:07:24 +00:00
Chris Lattner
bf0c3377fd Only run DeadInst elimination early, because it is quick and painless and
pipelines well

llvm-svn: 1549
2002-01-22 21:06:44 +00:00
Chris Lattner
fd5a4f7123 Misc cleanups. Allocate ofstream statically, and use a pass to write out the bytecode
llvm-svn: 1529
2002-01-22 03:30:46 +00:00
Chris Lattner
819df41a64 Try again, now it works right
llvm-svn: 1526
2002-01-22 02:28:50 +00:00
Chris Lattner
4cecd63a42 Rename LowerAllocations.h to ChangeAllocations.h since it now contains the
RaiseAllocations pass as well.

llvm-svn: 1525
2002-01-22 01:04:08 +00:00
Chris Lattner
d3a94cc67a Fix ordering dependency problem
llvm-svn: 1524
2002-01-22 01:03:39 +00:00
Chris Lattner
83056c99ec Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in
the ChangeAllocations.h header file.

llvm-svn: 1522
2002-01-22 00:13:51 +00:00
Chris Lattner
4454cdc5c0 Move stuff out of the Optimizations directories into the appropriate Transforms
directories.  Eliminate the opt namespace.

llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner
071f08916e Chuck fixed the GCC problems so this hack is now unneccesary
llvm-svn: 1519
2002-01-21 23:17:07 +00:00
Chris Lattner
10a9b7627d Eliminate opt library
llvm-svn: 1516
2002-01-21 23:13:46 +00:00
Chris Lattner
bbb4dcdcd1 Rename SwapStructureContents -> IPO/SimpleStructMutation
Move MutateStructTypes.(cpp|h) -> IPO/MutateStructTypes.(cpp|h)

llvm-svn: 1510
2002-01-21 07:52:35 +00:00
Chris Lattner
2521ae1011 Implement a more powerful, simpler, pass system. This pass system can figure
out how to run a collection of passes optimially given their behaviors and
charactaristics.

Convert code to use it.

llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner
3dc9a2a61f Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner
085560caa2 Add instruction combining pass
Rename -mergecons to -constmerge

llvm-svn: 1478
2001-12-14 16:50:35 +00:00
Chris Lattner
e6523ce62b Add more passes to run after raising
llvm-svn: 1476
2001-12-14 16:48:30 +00:00
Chris Lattner
eed30bc7da Build runtime library with local GCCAS
llvm-svn: 1447
2001-12-13 00:44:23 +00:00
Chris Lattner
c513c2ef29 Implement strlen strdup strcmp
llvm-svn: 1446
2001-12-13 00:44:09 +00:00
Chris Lattner
b0b2af33c7 Tell the user if a file is corrupt or not... not that the file cannot be
found.

llvm-svn: 1433
2001-12-08 20:31:32 +00:00
Chris Lattner
6d97b3a7be Run DCE before cleanupGCCoutput which will cause some dead types (like FILE) to be removed
llvm-svn: 1429
2001-12-07 04:25:36 +00:00
Chris Lattner
447d8fd004 Remove unnecesary namespace impot
llvm-svn: 1419
2001-12-05 06:35:30 +00:00
Chris Lattner
b1aa7e795d Simplify induction variables before 'raising' the representation
llvm-svn: 1418
2001-12-05 06:34:58 +00:00
Chris Lattner
f2e6a6be44 Use new induction variable simplification code with -indvars option
llvm-svn: 1410
2001-12-04 04:32:04 +00:00
Chris Lattner
a302c202ab Induction variables must be phi nodes
llvm-svn: 1402
2001-12-03 17:27:42 +00:00
Chris Lattner
463cc31132 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
9da08d6abf -raise includes constprop and dce
llvm-svn: 1397
2001-11-26 19:37:43 +00:00
Chris Lattner
cc821cf542 * Add hooks to globaldce
* Fix ugly hacks by implementing IPOs correctly
* Use an auto_ptr to manage the module lifecycle

llvm-svn: 1395
2001-11-26 19:22:39 +00:00
Chris Lattner
a148c8ca93 Link to ipo library
llvm-svn: 1394
2001-11-26 19:21:02 +00:00
Chris Lattner
2b12cae948 Fix problem where lli < foo.bc would have argc = 0
llvm-svn: 1393
2001-11-26 19:20:38 +00:00
Chris Lattner
9588b188db Add support to enable -lfoo to be processed correctly
llvm-svn: 1390
2001-11-26 19:18:30 +00:00
Chris Lattner
b0bd512e44 Add hooks to print natural loop information and induction variables
llvm-svn: 1389
2001-11-26 19:18:11 +00:00
Chris Lattner
195bbf88ba Change swapstructs itf
Add nasty hack to be removed later

llvm-svn: 1356
2001-11-26 18:18:53 +00:00
Chris Lattner
e0ca60fc70 Run constprop before -raise
llvm-svn: 1354
2001-11-26 18:16:07 +00:00
Chris Lattner
5908013cfc Fix link prob
llvm-svn: 1297
2001-11-14 11:03:17 +00:00
Chris Lattner
6f00b04246 Add hooks to call the new swap structcontents pass
llvm-svn: 1243
2001-11-10 07:16:10 +00:00
Chris Lattner
c9486bac28 add Yet Another Instance of a Static Library
llvm-svn: 1242
2001-11-10 07:15:53 +00:00
Chris Lattner
3659e104ec Add hooks for the FindUsedTypes pass
llvm-svn: 1233
2001-11-09 05:27:34 +00:00
Chris Lattner
821d1b8d30 Add analysis pass.
llvm-svn: 1182
2001-11-07 21:16:29 +00:00
Chris Lattner
943810898d Move the Raise xform from opt to transforms
llvm-svn: 1072
2001-11-01 02:41:09 +00:00
Chris Lattner
81a5b6edbf crunch the output of GCC a bit to make it nicer
llvm-svn: 1068
2001-10-31 06:36:48 +00:00
Chris Lattner
0db277e65e Fix dumb copy and paste typos
llvm-svn: 1063
2001-10-31 04:33:33 +00:00
Chris Lattner
882675498b Add hook for GCC cleanup pass
llvm-svn: 1060
2001-10-31 04:29:44 +00:00
Chris Lattner
a2ae364718 Build new gccas tool
llvm-svn: 1059
2001-10-31 04:29:30 +00:00
Chris Lattner
4506f72080 Initial checkin of GCCAS
llvm-svn: 1058
2001-10-31 04:28:11 +00:00
Chris Lattner
396a23cffb Implement memset memcpy, calloc
llvm-svn: 1055
2001-10-30 22:37:01 +00:00
Chris Lattner
b02a9d8ce4 Initialize map for purify
llvm-svn: 1049
2001-10-30 20:28:46 +00:00
Chris Lattner
fbbdca242a I screwed up the macros, so of course strtol didn't work. *sigh*
llvm-svn: 1035
2001-10-29 17:47:10 +00:00
Chris Lattner
067667b61e Oops, accidentally broke reading from stdin when doing command line arguments
llvm-svn: 1026
2001-10-29 14:00:48 +00:00
Chris Lattner
52736dc8e3 Implement a -trace command line option and a trace option in the interpreter.
llvm-svn: 989
2001-10-27 08:43:52 +00:00
Chris Lattner
9def26ab6b * Make pointer values work better by treating them uniformly as 64 bit values.
This causes code that is generated by gcc to work better.
* Implement mul & div
* Export malloc, free, and pow
* add strtol, atoi, and atol to the runtime library

llvm-svn: 988
2001-10-27 08:28:11 +00:00
Chris Lattner
de2726ed00 Provide argv for commands
llvm-svn: 987
2001-10-27 05:54:31 +00:00
Chris Lattner
e04a4efa13 * Implement exit() builtin function
* Implement linked in runtime library with puts(char*) in it
* implement builtin putchar(int) function

llvm-svn: 985
2001-10-27 04:15:57 +00:00
Chris Lattner
fc68c300ce Add support for building a runtime library for LLI
llvm-svn: 983
2001-10-24 19:52:41 +00:00
Chris Lattner
b75ed5de9d Implement a -L command line argument to specify a search path. Implement minimal ar compatibility stuff
llvm-svn: 975
2001-10-24 06:23:00 +00:00
Chris Lattner
7ec504f5dc Changes to get some meaningful feedback from the bytecode reader. At some point this stuff should all be exception driven, but for now it is not.
llvm-svn: 970
2001-10-24 01:15:12 +00:00
Chris Lattner
aa8d1c9987 Add '-v' option to enable verbose output from the linker
llvm-svn: 966
2001-10-23 20:44:55 +00:00
Chris Lattner
1c682e89db Fix to reference the right header
llvm-svn: 915
2001-10-19 15:39:14 +00:00
Chris Lattner
127fa2e39d Enhancements to pass argc & argv to main if required
llvm-svn: 909
2001-10-18 21:55:32 +00:00
Chris Lattner
3b77672a36 Remove unneccesary retcode var
llvm-svn: 905
2001-10-18 20:33:21 +00:00
Chris Lattner
80630ae4ed Refactor Assembly/Bytecode writer code into Assembly & bytecode libraries
llvm-svn: 904
2001-10-18 20:32:07 +00:00
Chris Lattner
8195375b7d Expose more xforms to the opt utility
llvm-svn: 900
2001-10-18 20:06:45 +00:00