Chris Lattner
d456ff35d1
Revamp the "ConstantStruct::get" methods. Previously, these were scattered
...
all over the place in different styles and variants. Standardize on two
preferred entrypoints: one that takes a StructType and ArrayRef, and one that
takes StructType and varargs.
In cases where there isn't a struct type convenient, we now add a
ConstantStruct::getAnon method (whose name will make more sense after a few
more patches land).
It would be "really really nice" if the ConstantStruct::get and
ConstantVector::get methods didn't make temporary std::vectors.
llvm-svn: 133412
2011-06-20 04:01:31 +00:00
Eli Friedman
f6e72fc114
Add -O1/2/3 to bugpoint, so when you conclude opt -O2 reproduces an issue, you can just run bugpoint -O2. :) My implementation isn't precisely equivalent to what opt does, but as far as I can tell, it's close enough.
...
llvm-svn: 132695
2011-06-06 22:45:46 +00:00
Chris Lattner
89036e6501
switch bugpoint and liblto to PassManagerBuilder.
...
llvm-svn: 131821
2011-05-22 00:20:07 +00:00
Andrew Trick
9f867fd2dc
Have Program::Wait return -2 for crashed and timeouts instead of embedding
...
info in the error message. Per Dan's request.
llvm-svn: 131780
2011-05-21 00:56:46 +00:00
Andrew Trick
9d2b107117
Typo and missing checkin from r131186.
...
llvm-svn: 131187
2011-05-11 16:44:08 +00:00
Andrew Trick
25d4fce092
Bugpoint support for miscompilations that result in a crash.
...
This change allows bugpoint to pinpoint the "opt" pass and bitcode
segment responsible for a crash caused by miscompilation. At least it
works well for me now, without having to create any custom execution
wrappers.
llvm-svn: 131186
2011-05-11 16:31:24 +00:00
Daniel Dunbar
1c0a0fde5c
ADT/Triple: Move a variety of clients to using isOSDarwin() and isOSWindows()
...
predicates.
llvm-svn: 129816
2011-04-19 21:14:45 +00:00
Michael J. Spencer
b127b18668
Fix whitespace.
...
llvm-svn: 128631
2011-03-31 13:06:39 +00:00
Michael J. Spencer
c96db7725b
Switch FileRemover from PathV1 to V2.
...
llvm-svn: 128630
2011-03-31 13:04:19 +00:00
Jay Foad
53632b7c03
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
2011-03-30 11:28:46 +00:00
Jay Foad
dc5a008237
(Almost) always call reserveOperandSpace() on newly created PHINodes.
...
llvm-svn: 128535
2011-03-30 11:19:20 +00:00
Chris Lattner
2f6f4a4788
fit in 80 cols.
...
llvm-svn: 126399
2011-02-24 18:59:38 +00:00
Andrew Trick
0cc8ef1ec9
Added bugpoint options: -compile-custom and -compile-command=...
...
I've been using this mode to narrow down llc unit tests. Example
custom compile script:
llc "$@"
not pygrep.py 'mul\s+r([0-9]), r\1,' < bugpoint-test-program.s
llvm-svn: 125096
2011-02-08 18:20:48 +00:00
Andrew Trick
6be6c71d81
whitespace
...
llvm-svn: 125095
2011-02-08 18:07:10 +00:00
Devang Patel
e9e4346064
Disable debug mode.
...
llvm-svn: 123443
2011-01-14 15:55:50 +00:00
Devang Patel
b2899fce10
Little help to debug the bugpoint itself.
...
Patch by Bob Wilson.
llvm-svn: 123390
2011-01-13 19:48:54 +00:00
Michael J. Spencer
d5ec932c3a
Merge System into Support.
...
llvm-svn: 120298
2010-11-29 18:16:10 +00:00
Dan Gohman
7df4b826a1
Fix some places where error messages were being swallowed.
...
llvm-svn: 118464
2010-11-09 01:13:31 +00:00
Mikhail Glushenkov
991857f132
Rename FindExecutable to PrependMainExecutablePath.
...
Makes it more clear that it is just a path manipulation function.
llvm-svn: 118174
2010-11-03 16:14:16 +00:00
Mikhail Glushenkov
5cbf236c6a
80-col violations, trailing whitespace.
...
llvm-svn: 118173
2010-11-03 16:14:07 +00:00
Dan Gohman
3419ae24eb
Check for (unlikely) errors from FindExecutable.
...
llvm-svn: 117658
2010-10-29 16:18:26 +00:00
Dan Gohman
e9b4001854
Fix these error messages to not mention PATH in cases where
...
PATH isn't actually searched, and to not mention the executable
directory when it isn't actually searched.
llvm-svn: 117657
2010-10-29 16:15:23 +00:00
Dan Gohman
90ced5a2ee
Delete this obsolete comment.
...
llvm-svn: 117655
2010-10-29 16:03:34 +00:00
Owen Anderson
46990c17f7
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
...
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820
2010-10-19 17:21:58 +00:00
Rafael Espindola
aa5448f520
Be more consistent in using ValueToValueMapTy.
...
llvm-svn: 116387
2010-10-13 01:36:30 +00:00
Dan Gohman
6645ce3f75
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
Michael J. Spencer
90f807fda5
Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."
...
This reverts commit r113632
Conflicts:
cmake/modules/AddLLVM.cmake
llvm-svn: 113819
2010-09-13 23:59:48 +00:00
Michael J. Spencer
98ad3f2ea7
CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.
...
llvm-svn: 113632
2010-09-10 21:14:25 +00:00
Dan Gohman
f9e09104f1
Make tool_output_file's raw_ostream instance a member variable instead
...
of a base class.
This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.
llvm-svn: 112706
2010-09-01 14:20:41 +00:00
Duncan Sands
604b706b87
Straighten out any triple strings passed on the command line before
...
they hit the rest of the system.
llvm-svn: 112344
2010-08-28 01:30:02 +00:00
Chris Lattner
a97cbccf90
Apply "Win32's Hybrid path separator in argv[0] should be accepted to bugpoint",
...
patch by NAKAMURA Takumi!
llvm-svn: 111929
2010-08-24 17:44:07 +00:00
Dan Gohman
d8be4c4aca
Convert tools to use tool_output_file, and introduce error
...
checking to places which previously lacked it.
llvm-svn: 111651
2010-08-20 16:59:15 +00:00
Rafael Espindola
c90e97f163
Use RunPassesOn as in the rest of bugpoint.
...
llvm-svn: 110682
2010-08-10 15:46:11 +00:00
Rafael Espindola
d25e9dbc11
Add a opt-args option that can be used to pass arguments to every opt
...
invocation. Fixes PR7793:
bugpoint -debug test.ll --opt-args -unroll-count=4
llvm-svn: 110555
2010-08-08 22:14:20 +00:00
Rafael Espindola
a2e8c6383e
Most of bugpoint now only needs to know the pass names.
...
llvm-svn: 110534
2010-08-08 03:55:08 +00:00
Rafael Espindola
48fc63ad76
Try to fix cmake build.
...
llvm-svn: 110528
2010-08-08 00:50:57 +00:00
Rafael Espindola
0236b41a5e
Run opt instead of bugpoint itself.
...
llvm-svn: 110524
2010-08-07 23:03:21 +00:00
Rafael Espindola
5579525578
Move the bugpoint test passes to a plugin in preparation for having bugpoint
...
use opt.
llvm-svn: 110520
2010-08-07 21:48:09 +00:00
Owen Anderson
f2fea95f2f
Reapply r110396, with fixes to appease the Linux buildbot gods.
...
llvm-svn: 110460
2010-08-06 18:33:48 +00:00
Owen Anderson
aadd8a89ca
Revert r110396 to fix buildbots.
...
llvm-svn: 110410
2010-08-06 00:23:35 +00:00
Owen Anderson
b9762c07cb
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
...
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
2010-08-05 23:42:04 +00:00
Bob Wilson
74157ac156
Revert bugpoint change due to buildbot breakage.
...
--- Reverse-merging r110333 into '.':
U tools/bugpoint/BugDriver.h
U tools/bugpoint/OptimizerDriver.cpp
U tools/bugpoint/bugpoint.cpp
U tools/bugpoint/BugDriver.cpp
llvm-svn: 110341
2010-08-05 16:26:32 +00:00
Rafael Espindola
3ef1be0f0a
Run opt instead of bugpoint itself.
...
Fixes PR753.
llvm-svn: 110333
2010-08-05 15:25:38 +00:00
Rafael Espindola
ca885492ab
Add const to compileProgram and to the various test functions in CrashDebugger.
...
llvm-svn: 110306
2010-08-05 03:00:22 +00:00
Rafael Espindola
0755ad0602
Add a Module argument to the remaining runPasses methods and mark getContext
...
const.
llvm-svn: 110300
2010-08-05 02:16:32 +00:00
Rafael Espindola
e580313f9e
Make EmitProgressBitcode const and add a Module argument to runPasses. Use
...
that argument to simplify runPassesOn.
llvm-svn: 110291
2010-08-05 00:29:04 +00:00
Rafael Espindola
b74919778f
Add const to some methods and change TestMergedProgram to return the merged
...
module and take a const BugDriver.
llvm-svn: 109951
2010-07-31 14:34:49 +00:00
Rafael Espindola
75734bc143
The BlockExtractorPass() constructor was not reading the BlockFile and that was
...
exactly what bugpoint expected it to do.
There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.
This fixes bugpoint's block extraction.
Nick, please review.
llvm-svn: 109936
2010-07-31 00:32:17 +00:00
Rafael Espindola
ba90b65153
Add a Program argument to diffProgram to avoid a use of swapProgramIn.
...
llvm-svn: 109859
2010-07-30 14:19:00 +00:00
Duncan Sands
07cc85fd7c
Do not pass a copy of the value map, pass a reference to it.
...
llvm-svn: 109852
2010-07-30 05:50:45 +00:00