summaryrefslogtreecommitdiffstats
path: root/llvm/tools/bugpoint/BugDriver.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Free all Constants in ~LLVMConstantImpl. We avoid assertion failuresJeffrey Yasskin2010-03-221-0/+4
| | | | | | | | | by dropping all references from all constants that can use other constants before trying to destroy any of them. I also had to free bugpoint's Module in ~BugDriver(). llvm-svn: 99160
* Bugpoint's default memory limit (100MB) was too low for valgrind, soJeffrey Yasskin2010-03-191-2/+2
| | | | | | | this patch raises the default to 800MB when valgrind's active. 800 was chosen semi-arbitrarily. llvm-svn: 98905
* Make bugpoint use ParseIRFile instead of doing the same thing manually.Dan Gohman2009-09-031-12/+5
| | | | llvm-svn: 80927
* Change bugpoint to use Triple to make runtime decisions.Daniel Dunbar2009-08-181-0/+19
| | | | | | | | | - This is cleaner, and makes bugpoint match the host instead of the build architecture. - Patch by Sandeep Patel! llvm-svn: 79309
* Add save-temps option to bugpoint to keep temporary stuff.Anton Korobeynikov2009-08-051-1/+1
| | | | | | Patch by Sandeep Patel llvm-svn: 78183
* Convert more tools code from cerr and cout to errs() and outs().Dan Gohman2009-07-161-19/+18
| | | | llvm-svn: 76070
* Use errs() instead of std::cerr.Dan Gohman2009-07-151-5/+5
| | | | llvm-svn: 75791
* Support remote execute for ARM.David Goodwin2009-07-101-1/+1
| | | | llvm-svn: 75292
* switch the .ll parser into SMDiagnostic.Chris Lattner2009-07-021-2/+3
| | | | llvm-svn: 74734
* Make the use of const with respect to LLVMContext sane. Hopefully this is ↵Owen Anderson2009-07-011-2/+2
| | | | | | | | the last time, for the moment, that I will need to make far-reaching changes. llvm-svn: 74655
* Hold the LLVMContext by reference rather than by pointer.Owen Anderson2009-07-011-2/+4
| | | | llvm-svn: 74640
* Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson2009-07-011-9/+9
| | | | | | | | | | LLVMContext through a lot of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools. Patches for Clang and LLVM-GCC to follow. llvm-svn: 74614
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. llvm-svn: 61558
* Generalize bugpoint's concept of a "safe" backend, and add optionsDan Gohman2008-12-081-1/+2
| | | | | | | | | | | | | | to allow the "safe" backend to be run with a different path, and/or with different command-line options. This enables the following use cases: - bugpoint llc against an llc command from a different build - bugpoint llc against the same llc with different command-line options - and more... Also, document the existing "custom" interpreter options. llvm-svn: 60681
* Detabify.Bill Wendling2008-02-261-1/+1
| | | | llvm-svn: 47596
* remove attributions from tools.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45421
* Pretty straightforward replacement of "bytecode" by "bitcode"Gabor Greif2007-07-041-5/+5
| | | | | | performed on tools/ first, in order not to cause lethal damage llvm-svn: 37877
* use the new MemoryBuffer interfaces to simplify error reporting in clients.Chris Lattner2007-05-061-4/+5
| | | | llvm-svn: 36900
* switch tools to bitcode from bytecodeChris Lattner2007-05-061-11/+6
| | | | llvm-svn: 36872
* add bitcode supportChris Lattner2007-05-061-1/+9
| | | | llvm-svn: 36849
* Add possibility to set memory limit for binaries run via libSystem. ThisAnton Korobeynikov2007-02-161-2/+2
| | | | | | is especially needed for bugpoint. This partly implements PR688 llvm-svn: 34349
* push bytecode decompressor out through APIs. Now the bytecode readerChris Lattner2007-02-071-1/+3
| | | | | | | | | | | | | | | | | | | | api's look like this: ModuleProvider *getBytecodeModuleProvider( const std::string &Filename, ///< Name of file to be read BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer, std::string* ErrMsg = 0, ///< Optional error message holder BytecodeHandler* H = 0 ///< Optional handler for reader events ); This is ugly, but allows a client to say: getBytecodeModuleProvider("foo", 0); If they do this, there is no dependency on the compression libraries, saving codesize. llvm-svn: 34012
* Fix for PR960. Improves bugpoint so that it removes global variableBill Wendling2006-10-251-0/+10
| | | | | | | initializers as well. This is only a first pass. It can be slow because it clones the module for each pass. An obvious improvement is not to do that. llvm-svn: 31182
* For PR797:Reid Spencer2006-08-181-9/+4
| | | | | | | | | | | | | Rid the Assembly Parser of exceptions. This is a really gross hack but it will do until the Assembly Parser is re-written as a recursive descent. The basic premise is that wherever the old "ThrowException" function was called (new name: GenerateError) we set a flag (TriggerError). Every production checks that flag and calls YYERROR if it is set. Additionally, each call to ThrowException in the grammar is replaced with GEN_ERROR which calls GenerateError and then YYERROR immediately. This prevents the remaining production from continuing after an error condition. llvm-svn: 29763
* This commit adds a new feature called find-bugs. The find-bugs option can be ↵Patrick Jenkins2006-08-151-16/+14
| | | | | | invoked on a .bc file from the command like with -find-bugs and a list of passes you wish to test. This procedure takes the set of optimization passes the user specifies, randomizes the passes, runs the passes on the specified .bc file, compiles the program, and finally runs the program checking its output vs the .bc file with no optimizations. This process repeats until either the user kills bugpoint or an error occurs in the optimizations, program complitation, or the running of the program. If an error occurs, bugpoint attempts to diagnose the error by eliminating passes that are not at fault and code that is not needed. llvm-svn: 29703
* Teach bugpoint to kill optimization passes that run over the timeout limit,Chris Lattner2006-06-131-2/+3
| | | | | | | which allows it to debug optimizer infinite loops. This patch is contributed by Nick Lewycky, thanks! llvm-svn: 28763
* Move ToolRunner.(cpp|h) into the bugpoint directoryChris Lattner2006-06-061-1/+1
| | | | llvm-svn: 28699
* print a nice error if bugpoint gets an error reading inputs. Bug identifiedChris Lattner2006-05-141-16/+21
| | | | | | by coverity. llvm-svn: 28298
* For PR351:Reid Spencer2005-12-221-11/+23
| | | | | | | | | | | | Generally, remove use of fork/exec from bugpoint in favor of the portable sys::Program::ExecuteAndWait method. This change requires two new options to bugpoint to tell it that it is running in "child" mode. In this mode, it reads its input and runs the passes. The result code signals to the parent instance of bugpoint what happened (success, fail, crash). This change should make bugpoint usable on Win32 systems. llvm-svn: 24961
* Remove trailing whitespaceMisha Brukman2005-04-221-3/+3
| | | | llvm-svn: 21428
* Allow compilers that can't distinguish between a class instantiation andReid Spencer2004-12-201-1/+2
| | | | | | the declaration of a function to compile this. llvm-svn: 19073
* For PR351:Reid Spencer2004-12-161-1/+1
| | | | | | | | | | | * removeFile() -> sys::Path::destroyFile() * remove extraneous toString() calls * convert local variables representing path names from std::string to sys::Path * Use sys::Path objects with FileRemove instead of std::string * Use sys::Path methods for construction of path names llvm-svn: 19001
* LinkModules is now in the Linker classReid Spencer2004-12-131-1/+1
| | | | llvm-svn: 18863
* Linker.h has a new home.Reid Spencer2004-11-141-1/+1
| | | | llvm-svn: 17801
* Changes For Bug 352Reid Spencer2004-09-011-2/+2
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Finally give bugpoint -timeout support!Chris Lattner2004-07-241-1/+1
| | | | llvm-svn: 15163
* * Convert "\n" -> '\n'Misha Brukman2004-07-231-4/+4
| | | | | | | * Print out another '\n' after printing out program execution status * Make sure code wraps at 80 cols llvm-svn: 15123
* Add #include <iostream> since Value.h does not include it any more.Reid Spencer2004-07-041-0/+2
| | | | llvm-svn: 14623
* Linker.h moved to include/llvm/SupportMisha Brukman2004-06-231-1/+1
| | | | llvm-svn: 14351
* Wrap at 80 cols.Misha Brukman2004-04-061-7/+6
| | | | llvm-svn: 12701
* Refactor and clean up a bunch more code. No major functionality changes.Chris Lattner2004-03-141-9/+10
| | | | | | | | | | | | | | * 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
* Refactor all of the "splitting a module into two pieces" code to avoidChris Lattner2004-03-141-9/+0
| | | | | | | code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs to print out the final message. llvm-svn: 12387
* Format a bit more nicelyChris Lattner2004-02-201-0/+1
| | | | llvm-svn: 11651
* Be a bit more robust. Explicitly check for a code generator crash.Chris Lattner2004-02-191-1/+16
| | | | llvm-svn: 11624
* Make ToolExecutionError inherit std::exception and implement itsAlkis Evlogimenos2004-02-191-2/+2
| | | | | | interface: getMessage() is gone, use what() instead. llvm-svn: 11621
* Cleanup and simplify manipulation of the program, eliminate the need for soChris Lattner2004-02-181-1/+10
| | | | | | many 'friends' of bugdriver. llvm-svn: 11603
* Add a stub for debugging code generator crashesChris Lattner2004-02-181-7/+24
| | | | llvm-svn: 11602
* ctor arguments changed orderChris Lattner2004-02-181-1/+1
| | | | llvm-svn: 11595
* This class got moved to FileUtilities.hChris Lattner2004-02-181-8/+1
| | | | llvm-svn: 11583
* finegrainify namespacificationChris Lattner2004-01-141-6/+2
| | | | llvm-svn: 10839
OpenPOWER on IntegriCloud