Reid Spencer
8cb2484800
The functions in Signal.h are now in the llvm::sys namespace - adjust
...
llvm-svn: 16091
2004-08-29 19:28:55 +00:00
Chris Lattner
8966ce8f41
If the block extractor fails, actually emit the bc file that failed to extract
...
llvm-svn: 15675
2004-08-12 02:36:50 +00:00
Misha Brukman
58104df77b
Fix #includes of i*.h => Instructions.h as per PR403.
...
llvm-svn: 15334
2004-07-29 17:30:56 +00:00
Chris Lattner
0d3969f3d1
Finally give bugpoint -timeout support!
...
llvm-svn: 15163
2004-07-24 07:53:26 +00:00
Misha Brukman
b521637a8d
* Convert "\n" -> '\n'
...
* Print out another '\n' after printing out program execution status
* Make sure code wraps at 80 cols
llvm-svn: 15123
2004-07-23 01:30:49 +00:00
Brian Gaeke
f18cdca667
These files don't need to include <iostream> since they include "Support/Debug.h".
...
llvm-svn: 15089
2004-07-21 20:50:33 +00:00
Reid Spencer
7f33869f9b
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
llvm-svn: 14953
2004-07-18 00:44:37 +00:00
Chris Lattner
9b03d18729
IA64 compat
...
llvm-svn: 14867
2004-07-16 00:08:28 +00:00
Chris Lattner
9e43df4c37
Add -load option
...
llvm-svn: 14740
2004-07-11 01:08:19 +00:00
Reid Spencer
6d8b0985d1
Add #include <iostream> since Value.h does not include it any more.
...
llvm-svn: 14623
2004-07-04 12:20:55 +00:00
Misha Brukman
5b0111dddd
Linker.h moved to include/llvm/Support
...
llvm-svn: 14351
2004-06-23 17:33:09 +00:00
Chris Lattner
6f0bab5b9d
Header file moved
...
llvm-svn: 13813
2004-05-27 05:41:36 +00:00
Reid Spencer
fec48b0d9d
Convert to SymbolTable's new iteration interface.
...
llvm-svn: 13754
2004-05-25 08:53:40 +00:00
Chris Lattner
387b7a11ce
Turn the block extractor on by default now that it basically works, eliminating the option.
...
llvm-svn: 13502
2004-05-12 19:02:44 +00:00
Chris Lattner
54d077797b
Check to see if all blocks are extractible first.
...
llvm-svn: 13491
2004-05-12 16:08:01 +00:00
Chris Lattner
cf43edc33e
Don't leave dead bytecode.output files around if the optimizer/block extractor crashes.
...
llvm-svn: 13477
2004-05-12 02:55:45 +00:00
Chris Lattner
9bb62d5754
Implement the final missing bits for block extractor support. Now bugpoint
...
can extract basic blocks up to the limit of the block extractor implementation.
llvm-svn: 13475
2004-05-12 02:43:24 +00:00
Chris Lattner
bc83892156
Implement basic block extraction for the miscompilation debugger. This still needs
...
two things: the FIXME in ExtractBlocks needs to be implemented, and the basic block
extractor itself needs to have enough bugs fixed for this to be more or less
useful.
Until the time that this is generally useful, it is hidden behind the new bugpoint
-enable-block-extraction option. I hope to get the FIXME done tonight.
Also of note, this patch adds a -extract-bbs option to bugpoint which can be used
to debug the block extractor. (hint hint Misha :)
llvm-svn: 13471
2004-05-11 21:54:13 +00:00
Chris Lattner
c698aea90a
A class that is meant to be a base class should have a virtual destructor
...
llvm-svn: 13470
2004-05-11 20:41:07 +00:00
Chris Lattner
d055a56886
Use the new commandline flag to allow us to call bugpoint like this:
...
bugpoint ... --tool-args -enable-correct-eh-support -regalloc=linearscan --args -- -foo
So that tool-args option gets the -enable-correct-eh-support -regalloc=linearscan flags instead of bugpoint.
llvm-svn: 13389
2004-05-06 22:05:35 +00:00
Chris Lattner
f1cb30f481
Remove a really old comment
...
llvm-svn: 13385
2004-05-06 19:29:58 +00:00
Brian Gaeke
433b49b796
Add --tool-args flag which lets you pass arguments to llc or lli.
...
This is intended to address Bug 40.
llvm-svn: 13358
2004-05-04 21:09:16 +00:00
Chris Lattner
7902d8fd02
Teach bugpoint to be a little bit smarter and avoid repeating work
...
llvm-svn: 13132
2004-04-23 20:36:51 +00:00
Misha Brukman
1e9b5281d0
Add a space before result for readability on the command line.
...
llvm-svn: 13109
2004-04-22 20:02:09 +00:00
Misha Brukman
f8b15005bf
Add doxygenified comments to functions.
...
llvm-svn: 13097
2004-04-21 18:36:43 +00:00
Misha Brukman
85b8b45f7b
As per Chris, greatly simplify handling of external functions by using the
...
wrapper idea uniformly: we can use Value::replaceAllUsesWith() instead of
special-casing by class of user.
llvm-svn: 13063
2004-04-19 03:36:47 +00:00
Misha Brukman
eba5545346
* Reorder #includes
...
* Wrap a long line
llvm-svn: 13061
2004-04-19 03:12:35 +00:00
Misha Brukman
e7ccafce7e
Finally implement rewriting global initializers which use external functions
...
by creating an internal wrapper function with same signature as the external
function, and use it instead of the "real" function.
The wrapper then calls the external function using the same JIT function
resolution API that has been used before for rewriting instructions, since the
wrapper has an explicit call instruction which we can rewrite.
llvm-svn: 13054
2004-04-19 01:12:01 +00:00
Chris Lattner
903a90b9de
Disambiguate symbols after loop extraction so that we can diagnose a code
...
generator bug if multiple loops are extracted from a function.
llvm-svn: 12847
2004-04-11 23:52:35 +00:00
Chris Lattner
ff16e6b701
Fix an obvious bug in the refactoring I did a few days ago
...
llvm-svn: 12797
2004-04-09 22:28:33 +00:00
Misha Brukman
e2d817bc26
Wrap at 80 cols.
...
llvm-svn: 12701
2004-04-06 17:04:30 +00:00
Chris Lattner
d2c51f2cc3
Merge the code generator miscompilation code into the optimizer miscompilation
...
code. This "instantly" gives us loop-extractor power to assist with the
debugment of our nasty codegen issues. :)
llvm-svn: 12678
2004-04-05 22:58:16 +00:00
Chris Lattner
0442a87f47
Make a method public
...
llvm-svn: 12677
2004-04-05 22:01:48 +00:00
Chris Lattner
f856e42795
Minor cleanups, remove some old debug code
...
llvm-svn: 12676
2004-04-05 21:37:55 +00:00
Chris Lattner
5c943cebf1
Refactor and genericize code
...
llvm-svn: 12675
2004-04-05 21:37:38 +00:00
Chris Lattner
5ac19e9daf
Make full use of the Mangler interface to simplify code
...
llvm-svn: 12671
2004-04-05 19:31:02 +00:00
Chris Lattner
61dcf6709b
Minor change
...
llvm-svn: 12655
2004-04-05 01:31:50 +00:00
Chris Lattner
b9a26ff8fc
Minor speedup
...
llvm-svn: 12612
2004-04-02 16:28:32 +00:00
Chris Lattner
ec5b2f9597
minor formatting change
...
llvm-svn: 12606
2004-04-02 06:32:45 +00:00
Chris Lattner
950f3fac90
Fix two pretty serious bugs:
...
1. Each time the loop extractor extracted a loop, we would leak a module.
2. When we extracted a loop, we didn't add the new function to the list of
miscompiled functions. Thus if the bug was in a loop nest and we
extracted it, we could actually *LOSE THE BUG*, which is very bad.
With these patches, bugpoint has successfully found a bug for me in a function
with several nested loops, and cut it down to just one of them. :) :)
llvm-svn: 12605
2004-04-02 06:32:17 +00:00
Chris Lattner
54aa691a5c
Fix a fairly nasty bug that prevented bugpoint from working quite right when
...
hacking on programs with two functions that have the same name.
llvm-svn: 12604
2004-04-02 06:30:33 +00:00
Chris Lattner
b3f5ab8d5b
If the program returns a non-zero exit value, don't leave files laying
...
around
llvm-svn: 12603
2004-04-02 05:33:06 +00:00
Chris Lattner
e45504d887
When loop extraction succeeds, make sure to map the function pointers over
...
to avoid dangling references.
llvm-svn: 12470
2004-03-17 17:42:09 +00:00
Chris Lattner
e2b4b9ca3f
Fix an inverted condition that causes us to think that loop extraction
...
accomplished something when it really did not. This does not fix the bigger problem tho.
llvm-svn: 12469
2004-03-17 17:37:18 +00:00
Chris Lattner
9a8238e477
Fix an iterator invalidation problem in a "buggy" pass
...
llvm-svn: 12468
2004-03-17 17:29:08 +00:00
Chris Lattner
83c74abb8e
Fix thinko, and PR292
...
llvm-svn: 12426
2004-03-16 01:51:54 +00:00
Chris Lattner
4ef444f59b
After reducing a miscompiled program down to the functions which are being
...
miscompiled, try to use the loop extractor to reduce the program down to a
loop nest that is being miscompiled. In practice, the loop extractor appears
to have too many bugs for this to be useful, but hopefully they will be fixed
soon...
llvm-svn: 12398
2004-03-14 22:08:00 +00:00
Chris Lattner
acf045e970
Fix a minor bug in runPassesOn
...
llvm-svn: 12397
2004-03-14 21:37:41 +00:00
Chris Lattner
d82b46916c
Add a new "AutoDebugCrashes" option
...
llvm-svn: 12396
2004-03-14 21:21:57 +00:00
Chris Lattner
d4b06def93
Refactor to use a new method
...
llvm-svn: 12395
2004-03-14 21:17:22 +00:00
Chris Lattner
c3bbd5a66d
Add new method
...
llvm-svn: 12394
2004-03-14 21:17:03 +00:00
Chris Lattner
491f3054b8
Refactor and clean up a bunch more code. No major functionality changes.
...
* Make several methods of bugdriver global functions (ParseInputFile, PrintFunctionList)
* Make PrintFunctionList truncate the output after 10 entries, like the crash debugger
did. This allows code sharing.
* Add a couple of methods to BugDriver that allows us to eliminate some friends
* Improve comments in ExtractFunction.cpp
* Make classes that used to be friends up bugdriver now live in anon namespaces
* Rip a bunch of functionality in the miscompilation tester into a new
TestMergedProgram function for future code sharing.
* Fix a bug in the miscompilation tester induced in my last checkin
llvm-svn: 12393
2004-03-14 20:50:42 +00:00
Chris Lattner
07b9a2c117
Add a method to extract a loop
...
llvm-svn: 12391
2004-03-14 20:02:07 +00:00
Chris Lattner
da20cdaaf2
add a fixme
...
llvm-svn: 12388
2004-03-14 19:31:00 +00:00
Chris Lattner
36e8168af5
Refactor all of the "splitting a module into two pieces" code to avoid
...
code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs
to print out the final message.
llvm-svn: 12387
2004-03-14 19:27:19 +00:00
Chris Lattner
a2f653d0cc
Fix the "infinite looping unless you disable adce" bug
...
Also remove an option to disable adce :)
llvm-svn: 12359
2004-03-13 19:35:54 +00:00
Brian Gaeke
3cae3bad22
Revise comment and error message for the Bug 38 situation. Also, make it
...
print out the name of the function being used.
llvm-svn: 12347
2004-03-12 21:37:46 +00:00
Chris Lattner
483712708a
If bugpoint can't match the reference output, at LEAST provide the output
...
we can get.
llvm-svn: 11653
2004-02-20 06:12:58 +00:00
Chris Lattner
a112c05aa6
Wild and passionate uncontrolled goose chases are amusing to watch, but not
...
very helpful. Let bugpoint favor being helpful instead of determined.
llvm-svn: 11652
2004-02-20 05:58:58 +00:00
Chris Lattner
ddbd4a598b
Format a bit more nicely
...
llvm-svn: 11651
2004-02-20 05:56:48 +00:00
Chris Lattner
d4f7ef8b1e
Make sure to print a stack trace whenever an error signal is delivered
...
to the tool.
llvm-svn: 11634
2004-02-19 20:33:00 +00:00
Chris Lattner
9e02d336e7
Be a bit more robust. Explicitly check for a code generator crash.
...
llvm-svn: 11624
2004-02-19 17:03:49 +00:00
Alkis Evlogimenos
59c646da40
Make ToolExecutionError inherit std::exception and implement its
...
interface: getMessage() is gone, use what() instead.
llvm-svn: 11621
2004-02-19 07:39:26 +00:00
Chris Lattner
584b3d7379
Fix the "horribly N^2'd" problem when deleting individual instructions.
...
llvm-svn: 11617
2004-02-18 23:59:11 +00:00
Chris Lattner
f40a25ffa4
* Predicate the optimizer crash debugger on a function.
...
* Implement a new code generator crash debugger which uses this predicate
llvm-svn: 11614
2004-02-18 23:26:28 +00:00
Chris Lattner
2fba96f37e
Add a new method for use by the code generator crash debugger.
...
llvm-svn: 11613
2004-02-18 23:25:22 +00:00
Chris Lattner
3d405dc9c4
Don't crash if there are no passes in the PassesToRun list
...
llvm-svn: 11612
2004-02-18 23:24:56 +00:00
Chris Lattner
39e49b1940
Make the executeProgram method exception safe, not leaving around bytecode
...
files.
llvm-svn: 11607
2004-02-18 22:01:21 +00:00
Chris Lattner
6e7c1e5c5c
Make more stuff public. Make the instruction argument to
...
deleteInstructionFromProgram be const
llvm-svn: 11606
2004-02-18 21:50:26 +00:00
Chris Lattner
975c9272ef
make a bunch of methods public
...
llvm-svn: 11605
2004-02-18 21:35:28 +00:00
Chris Lattner
8a76047d63
A couple of minor cleanups: don't forward declare private classes, put private
...
classes in an anon namespace
llvm-svn: 11604
2004-02-18 21:29:46 +00:00
Chris Lattner
0eec2f9d9d
Cleanup and simplify manipulation of the program, eliminate the need for so
...
many 'friends' of bugdriver.
llvm-svn: 11603
2004-02-18 21:24:48 +00:00
Chris Lattner
264e195392
Add a stub for debugging code generator crashes
...
llvm-svn: 11602
2004-02-18 21:02:04 +00:00
Chris Lattner
1f2a818b9f
Update comments, if we are running with the CBE, make sure the Interpreter
...
variable and the CBE variable are pointer equal.
llvm-svn: 11599
2004-02-18 20:52:02 +00:00
Chris Lattner
2621ce4cef
ctor arguments changed order
...
llvm-svn: 11595
2004-02-18 20:22:25 +00:00
Chris Lattner
17d98cc298
Catch exception and print message as appropriate
...
llvm-svn: 11594
2004-02-18 20:22:11 +00:00
Chris Lattner
0437eb36db
Bugpoint will be throwing exceptions soon, perpare for the worst.
...
llvm-svn: 11584
2004-02-18 17:32:54 +00:00
Chris Lattner
bf9a487c2e
This class got moved to FileUtilities.h
...
llvm-svn: 11583
2004-02-18 17:17:10 +00:00
Chris Lattner
194353930c
The CBE is now in llc, not llvm-dis
...
llvm-svn: 11534
2004-02-17 06:40:51 +00:00
Brian Gaeke
04b8fe6b33
Add check-exit-code option, defaulting to true.
...
Add ProgramExitedNonzero argument to executeProgram(), and make it
tell its caller whether the program exited nonzero.
Move executeProgramWithCBE() out of line, to ExecutionDriver.cpp, and remove
its extra arguments which are always defaulted. Make it turn off
check-exit-code if the program exits nonzero while generating a reference
output.
Make diffProgram() assume that any nonzero exit code is a failure, if
check-exit-code is turned on.
llvm-svn: 11325
2004-02-11 18:37:32 +00:00
Chris Lattner
98f2200fb2
finegrainify namespacification
...
llvm-svn: 10839
2004-01-14 03:38:37 +00:00
Chris Lattner
21819d462c
Bugpoint had appalingly bad grammar. Fix some of it.
...
llvm-svn: 10308
2003-12-07 02:43:09 +00:00
Chris Lattner
d7b71dadf5
Do not leave a bunch of crud lying around
...
llvm-svn: 10307
2003-12-07 02:31:03 +00:00
Chris Lattner
5b5415c547
be 3.4 happy
...
llvm-svn: 10265
2003-11-29 20:04:13 +00:00
Chris Lattner
fe396111ee
Do not DESTROY programs by default. No wonder bugpoint was not being useful all this time!
...
llvm-svn: 10175
2003-11-23 04:51:05 +00:00
Chris Lattner
a2120947bb
Do not crash when dealing with invoke and unwind instructions!
...
llvm-svn: 10160
2003-11-22 02:10:38 +00:00
Chris Lattner
50d9290183
Use new interfaces
...
llvm-svn: 10159
2003-11-22 02:10:26 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
62b495bd5c
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).
llvm-svn: 9743
2003-11-05 21:45:35 +00:00
Chris Lattner
c26574d777
Simplify the performFinalCleanups interface
...
llvm-svn: 9740
2003-11-05 21:15:19 +00:00
Chris Lattner
1844c58727
Do not print out lists with thousands of elements in them, that's kinda silly
...
llvm-svn: 9523
2003-10-27 04:44:59 +00:00
Chris Lattner
e4da5a79fc
Fix an assertion failure in Bugpoint
...
llvm-svn: 9406
2003-10-23 15:42:55 +00:00
Brian Gaeke
4034694fef
Fix the first FIXME in this file: automatically pick a "good"
...
interpreter by default, by picking the first one that works
from a hard-coded list.
llvm-svn: 9337
2003-10-21 17:41:35 +00:00
John Criswell
a8dfda0513
Added LLVM copyright to Makefiles.
...
llvm-svn: 9314
2003-10-20 22:29:16 +00:00
Misha Brukman
4303b02f66
Made error message more comprehensible.
...
llvm-svn: 9299
2003-10-20 19:43:47 +00:00
Chris Lattner
656ad51b9d
fix file headers
...
llvm-svn: 9293
2003-10-20 17:57:13 +00:00
John Criswell
d06dc1136b
Added copyright header to all C++ source files.
...
llvm-svn: 9291
2003-10-20 17:47:21 +00:00
Chris Lattner
091340ca13
Don't bother forwarding function references which are external to the program entirely
...
llvm-svn: 9274
2003-10-19 23:32:50 +00:00
Chris Lattner
3a0b78c289
Ok, return an explicit path to the shared object, unbreaking code generator
...
debugging with the JIT
llvm-svn: 9273
2003-10-19 21:54:13 +00:00
Chris Lattner
84a991bc86
Fix iterator invalidation problem
...
llvm-svn: 9272
2003-10-19 21:48:27 +00:00
Chris Lattner
008529a320
Update compile information
...
llvm-svn: 9247
2003-10-18 21:55:47 +00:00
Chris Lattner
babd7c5dfd
Add usage blurb
...
llvm-svn: 9246
2003-10-18 21:55:35 +00:00
Chris Lattner
4aa68a71a7
Print -fno-strict-aliasing as well
...
llvm-svn: 9243
2003-10-18 21:08:57 +00:00
Chris Lattner
23628ef2fb
Don't leave a trail of bugpoint-execution-output-* breadcrumbs all over the place
...
llvm-svn: 9242
2003-10-18 21:02:51 +00:00
Chris Lattner
6dc01b06f7
Change run-lli -> run-int
...
Many people associate lli with the jit, so we don't want to suprise them
llvm-svn: 9238
2003-10-18 20:30:48 +00:00
Chris Lattner
aea6238a66
Default to using the CBE instead of the Interpreter if no -run-* option is specified
...
llvm-svn: 9237
2003-10-18 20:18:20 +00:00
Chris Lattner
a65c470b02
If we detect a pass crash during miscompilation testing, immediately enter the
...
crash debugger
llvm-svn: 9234
2003-10-18 19:27:48 +00:00
Chris Lattner
d38efa85f5
Fix bug in my checkin
...
llvm-svn: 9217
2003-10-18 00:14:13 +00:00
Chris Lattner
10c281e015
Another formatting fix
...
llvm-svn: 9216
2003-10-18 00:05:05 +00:00
Chris Lattner
877bfd7e34
More cleanups
...
llvm-svn: 9215
2003-10-17 23:07:47 +00:00
Chris Lattner
2db02886eb
Be more helpful if a pass fails while chasing down a miscompilation
...
llvm-svn: 9214
2003-10-17 23:03:16 +00:00
Brian Gaeke
53682403cf
Flush output after writing out the list of function names.
...
llvm-svn: 9138
2003-10-15 20:42:48 +00:00
Chris Lattner
c44998d315
add support forloading additional .so files on the command line
...
llvm-svn: 9131
2003-10-14 22:24:31 +00:00
Chris Lattner
1a8192c85e
Change the execute methods to take the shared object filename by const reference.
...
Other adjustments to work with the new ToolRunner interfaces
llvm-svn: 9130
2003-10-14 21:59:36 +00:00
Chris Lattner
60503a16cf
The return value of compileSharedObject was never used. Return the shared
...
object's name instead
llvm-svn: 9120
2003-10-14 21:09:11 +00:00
Chris Lattner
beca447374
minor cleanups
...
llvm-svn: 9118
2003-10-14 21:01:51 +00:00
Chris Lattner
b44dd76513
Fix minor formatting bug
...
llvm-svn: 9116
2003-10-14 20:55:56 +00:00
Chris Lattner
32f66afbad
Eliminate the bugpoint -mode option, by making bugpoint automatically infer the root of all of your problems
...
llvm-svn: 9115
2003-10-14 20:52:55 +00:00
Chris Lattner
5851e74388
Unbreak code generator debug mode
...
llvm-svn: 9106
2003-10-13 21:04:26 +00:00
Brian Gaeke
bb70cb175c
Don't include <stdlib.h>.
...
llvm-svn: 9038
2003-10-10 19:12:45 +00:00
Misha Brukman
868eac95dd
Fix spelling.
...
llvm-svn: 9027
2003-10-10 17:57:28 +00:00
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
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
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
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
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
8b8e1625e1
Print filename correctly
...
llvm-svn: 6119
2003-05-12 14:32:04 +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
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
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
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
d44e355c9c
Allow specifying an input file for the program being executed
...
llvm-svn: 5888
2003-04-23 20:31:37 +00:00
Chris Lattner
796281cf86
Remove unnecessary &*
...
llvm-svn: 5873
2003-04-23 16:38:00 +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
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
c582c69c7a
Link in lots o libraries
...
llvm-svn: 5269
2003-01-14 21:30:30 +00:00
Chris Lattner
1214348847
Fix compilation on GCC 3.2
...
llvm-svn: 5136
2002-12-24 00:44:34 +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
Chris Lattner
ceba1ddf2f
Initial checkin of bugpoint
...
llvm-svn: 4789
2002-11-20 22:28:10 +00:00