Commit Graph

35 Commits

Author SHA1 Message Date
Chris Lattner
c4601bf2f3 The CBE is now in llc, not llvm-dis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11534 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-17 06:40:51 +00:00
Chris Lattner
fa76183e8e finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10839 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 03:38:37 +00:00
Chris Lattner
89eca9097d Use new interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10159 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22 02:10:26 +00:00
Brian Gaeke
d0fde30ce8 Put all LLVM code into the llvm namespace, as per bug 109.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
Chris Lattner
fcb6ec0c7e I hate it when bugpoint is all ready to give me a bytecode file, then crashes
in final cleanups.  Then you had to run the whole mess again with
-disable-final-cleanups.

This makes bugpoint run the cleanups in a protected environment so that if
they crash, bugpoint itself doesn't crash.  This makes things much happier,
implements a FIXME, and gets rid of YABPO (yet another bugpoint option).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9743 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-05 21:45:35 +00:00
Chris Lattner
417477d6c2 Simplify the performFinalCleanups interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9740 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-05 21:15:19 +00:00
Misha Brukman
06ea151895 Made error message more comprehensible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9299 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 19:43:47 +00:00
Chris Lattner
943211187d fix file headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9293 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 17:57:13 +00:00
John Criswell
7c0e022c5c Added copyright header to all C++ source files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9291 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 17:47:21 +00:00
Chris Lattner
9fc2adc487 Don't bother forwarding function references which are external to the program entirely
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9274 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-19 23:32:50 +00:00
Chris Lattner
b656c20cf1 Fix iterator invalidation problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9272 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-19 21:48:27 +00:00
Chris Lattner
365f09a0e1 Update compile information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9247 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-18 21:55:47 +00:00
Chris Lattner
b715497a56 Print -fno-strict-aliasing as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9243 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-18 21:08:57 +00:00
Chris Lattner
769f1fe672 Change the execute methods to take the shared object filename by const reference.
Other adjustments to work with the new ToolRunner interfaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9130 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-14 21:59:36 +00:00
Chris Lattner
a0f5b15e1e The return value of compileSharedObject was never used. Return the shared
object's name instead


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9120 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-14 21:09:11 +00:00
Chris Lattner
8deb5814a1 minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9118 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-14 21:01:51 +00:00
Chris Lattner
182a21ea71 Fix minor formatting bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9116 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-14 20:55:56 +00:00
Misha Brukman
85544baf54 Renaming dis' -> llvm-dis'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8197 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 22:14:16 +00:00
Chris Lattner
57c6941631 Give correct command line for making a shared object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7929 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 23:38:53 +00:00
Chris Lattner
57e5a702d0 Make sure that "newmain" gets names for its arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7927 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 22:14:20 +00:00
Chris Lattner
e533cefbc0 Fix message
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7926 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 22:08:25 +00:00
Misha Brukman
3d9cafa003 File-related functions moved to FileUtilities.h .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7696 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:42:28 +00:00
Misha Brukman
e49603d79d Re-grouped and alphabetized headers for easier reading and cleaner style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7689 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:19:30 +00:00
Misha Brukman
11c6592daf Fixed path for SystemUtils.h and a few code cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7688 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:05:13 +00:00
Chris Lattner
6730c8133a Print accurate run instructions for when testing LLC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7554 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 00:56:27 +00:00
Chris Lattner
15d11276c1 Fix problem I introduced in bugpoint with the cleanup functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7549 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-03 22:29:43 +00:00
Chris Lattner
c648dabf65 DEBUG got moved to Debug.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7491 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 22:13:59 +00:00
Chris Lattner
10b9fa89a1 Don't emit modules with lots of cruft hanging off of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7478 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 16:14:33 +00:00
Misha Brukman
3b624625e7 Ignore intrinsic functions -- don't mangle their names or rewrite calls to them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7438 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 21:45:20 +00:00
Misha Brukman
be6bf5668c 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7434 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 20:15:56 +00:00
Misha Brukman
de9720ffce * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7380 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 16:02:28 +00:00
Misha Brukman
c1e39ee659 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7371 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 21:07:39 +00:00
Misha Brukman
91eabc13d3 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7364 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 19:16:14 +00:00
Misha Brukman
a259c9be2a 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7302 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 21:59:10 +00:00
Misha Brukman
5073336cd4 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7293 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 18:17:43 +00:00