Commit Graph

92 Commits

Author SHA1 Message Date
Chris Lattner
d6ed5425f4 This header file moved. Thanks to Bill and Nightly tester for noticing
llvm-svn: 8920
2003-10-07 13:45:51 +00:00
Misha Brukman
c253fa6c45 Use the newly abstracted interface for running our tools and gcc.
llvm-svn: 8756
2003-09-29 22:40:52 +00:00
Chris Lattner
20dd7a8b54 Use new method
llvm-svn: 8573
2003-09-17 05:00:07 +00:00
Misha Brukman
0eb15a2ced Bugpoint has the ability of generating a plethora of core files, so to
avoid filling up the disk, set the max core file size to 0.

llvm-svn: 8503
2003-09-12 20:42:57 +00:00
Brian Gaeke
069e2d385a Check in the fix I meant to apply here, but mistakenly applied to
tools/extract instead..... heh

llvm-svn: 8464
2003-09-10 21:11:42 +00:00
Misha Brukman
7fbf15848b Renaming dis' -> llvm-dis'.
llvm-svn: 8197
2003-08-28 22:14:16 +00:00
Chris Lattner
ac65cd51a4 Kill warning
llvm-svn: 8056
2003-08-22 18:57:43 +00:00
Misha Brukman
c33d6ace03 Squash the warning that `Result' may not be initialized on all code paths.
llvm-svn: 8042
2003-08-22 03:35:24 +00:00
Chris Lattner
31da13847a no-strict-aliasing redux
llvm-svn: 7965
2003-08-18 22:32:48 +00:00
Chris Lattner
de8083df45 The CBE generates code which violates the TBAA rules of C, thus we must disable
optimizations based on these rules.  :(

llvm-svn: 7964
2003-08-18 22:32:03 +00:00
Misha Brukman
56f7db4178 Spell `necessary' correctly.
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
b9a9bcf261 Give correct command line for making a shared object
llvm-svn: 7929
2003-08-17 23:38:53 +00:00
Chris Lattner
4a8c16cf34 Make sure that "newmain" gets names for its arguments
llvm-svn: 7927
2003-08-17 22:14:20 +00:00
Chris Lattner
4d28b73dab Fix message
llvm-svn: 7926
2003-08-17 22:08:25 +00:00
Misha Brukman
de33e42aa9 File-related functions moved to FileUtilities.h .
llvm-svn: 7696
2003-08-07 21:42:28 +00:00
Misha Brukman
6cb08f34b6 Re-grouped and alphabetized headers for easier reading and cleaner style.
llvm-svn: 7689
2003-08-07 21:19:30 +00:00
Misha Brukman
461b7cdfc3 Fixed path for SystemUtils.h and a few code cleanups.
llvm-svn: 7688
2003-08-07 21:05:13 +00:00
Misha Brukman
43f3b68016 Moved SystemUtils.h to include/Support and SystemUtils.cpp to lib/Support.
llvm-svn: 7687
2003-08-07 21:04:42 +00:00
Chris Lattner
cd4179f054 If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
narrowing, no matter what.

llvm-svn: 7596
2003-08-05 15:51:05 +00:00
Misha Brukman
65bebf03f0 Only test the vector of functions if it is non-empty.
llvm-svn: 7594
2003-08-05 15:26:21 +00:00
Misha Brukman
a326e31a1c Do not attempt to reduce a test case if it is an empty set.
llvm-svn: 7570
2003-08-04 19:03:42 +00:00
John Criswell
4f1ed9c65b Added code that ensures that we don't try to reduce an empty vector of basic
blocks.
This fixes the bugpoint regressions.

llvm-svn: 7569
2003-08-04 18:24:31 +00:00
Chris Lattner
929fe6d82c Make sure to flush the output stream so that we get incremental updates
llvm-svn: 7555
2003-08-04 00:56:43 +00:00
Chris Lattner
70dd263ae7 Print accurate run instructions for when testing LLC
llvm-svn: 7554
2003-08-04 00:56:27 +00:00
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
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
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
Misha Brukman
5de3e14206 The word separate' only has one e'.
llvm-svn: 7173
2003-07-14 17:20:40 +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
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
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
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