| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
header, to make LLVMContextImpl.h
not hideous. Also, fix some MSVC compile errors.
llvm-svn: 78115
|
|
|
|
| |
llvm-svn: 76070
|
|
|
|
|
|
|
|
| |
the last time, for the
moment, that I will need to make far-reaching changes.
llvm-svn: 74655
|
|
|
|
| |
llvm-svn: 74640
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
up functions by name.
llvm-svn: 69805
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 45421
|
|
|
|
|
|
|
|
|
| |
from a file containing Function/BasicBlock pairings. This is not safe against
anonymous or abnormally-named Funcs or BBs.
Make bugpoint use this interface to pass the BBs list to the child bugpoint.
llvm-svn: 44101
|
|
|
|
|
|
| |
performed on tools/ first, in order not to cause lethal damage
llvm-svn: 37877
|
|
|
|
|
|
| |
is especially needed for bugpoint. This partly implements PR688
llvm-svn: 34349
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
LLC as the reference compiler to reduce testcases for bugs in GCC.
llvm-svn: 30400
|
|
|
|
| |
llvm-svn: 29754
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
which allows it to debug optimizer infinite loops. This patch is contributed
by Nick Lewycky, thanks!
llvm-svn: 28763
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
quickly as possible and output what it has so far. If they hit it twice,
bugpoint is killed.
llvm-svn: 22579
|
|
|
|
| |
llvm-svn: 21441
|
|
|
|
| |
llvm-svn: 21428
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
code. This "instantly" gives us loop-extractor power to assist with the
debugment of our nasty codegen issues. :)
llvm-svn: 12678
|
|
|
|
| |
llvm-svn: 12677
|
|
|
|
| |
llvm-svn: 12396
|
|
|
|
| |
llvm-svn: 12394
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
llvm-svn: 12391
|
|
|
|
|
|
|
| |
code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs
to print out the final message.
llvm-svn: 12387
|
|
|
|
| |
llvm-svn: 11613
|
|
|
|
|
|
| |
deleteInstructionFromProgram be const
llvm-svn: 11606
|
|
|
|
| |
llvm-svn: 11605
|
|
|
|
|
|
| |
classes in an anon namespace
llvm-svn: 11604
|
|
|
|
|
|
| |
many 'friends' of bugdriver.
llvm-svn: 11603
|
|
|
|
| |
llvm-svn: 11602
|
|
|
|
|
|
| |
variable and the CBE variable are pointer equal.
llvm-svn: 11599
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 9740
|
|
|
|
| |
llvm-svn: 9293
|
|
|
|
| |
llvm-svn: 9291
|
|
|
|
| |
llvm-svn: 9214
|
|
|
|
|
|
|
|
| |
reference.
Other adjustments to work with the new ToolRunner interfaces
llvm-svn: 9130
|
|
|
|
|
|
| |
object's name instead
llvm-svn: 9120
|
|
|
|
|
|
| |
narrowing, no matter what.
llvm-svn: 7596
|
|
|
|
| |
llvm-svn: 7477
|
|
|
|
| |
llvm-svn: 7370
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|