Patrick Jenkins
689b3e1549
This commit adds a new feature called find-bugs. The find-bugs option can be 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
2006-08-15 16:40:49 +00:00
Devang Patel
d930310498
untabify
...
llvm-svn: 29686
2006-08-14 23:37:18 +00:00
Devang Patel
c97ee74e6a
Use mangler, instead of addUnderscore(), to get mangled name.
...
Now, LLVMSymbol keeps symbol original name and mangled name.
llvm-svn: 29679
2006-08-14 22:36:16 +00:00
Reid Spencer
249b932022
Provide indentation of the generated program.
...
llvm-svn: 29678
2006-08-14 22:35:15 +00:00
Reid Spencer
9cd0b87af3
Don't print double newline for --src-root and --obj-root as it tends to
...
confuse shells that might use this output.
llvm-svn: 29629
2006-08-11 21:50:24 +00:00
Anton Korobeynikov
5ab9a8d938
Fixed typo. Thanks, Reid.
...
llvm-svn: 29533
2006-08-04 22:55:53 +00:00
Anton Korobeynikov
0a95ed88c3
Removed usage of "sort", which can lead to undeterministic behavior on mingw & cygwin platforms.
...
llvm-svn: 29532
2006-08-04 21:52:23 +00:00
Devang Patel
bb13b66737
Collect references from globals.
...
llvm-svn: 29530
2006-08-04 19:10:26 +00:00
Reid Spencer
d55c555011
For PR845:
...
Enable the makefile check on the result of find-cycles.pl. LLVM is now
cycle free and we intend to keep it that way. This patch will fail the
build if cycles are found.
llvm-svn: 29517
2006-08-03 21:46:42 +00:00
Reid Spencer
8e0f0bfd98
Fix a typo in the name of expand_dependencies.
...
Make the dependency line pattern match handle white space better.
llvm-svn: 29516
2006-08-03 21:45:35 +00:00
Devang Patel
594ca4ed21
Make it fit into 80-columns.
...
llvm-svn: 29503
2006-08-03 17:26:30 +00:00
Devang Patel
1beac3b680
Fix typo.
...
llvm-svn: 29502
2006-08-03 17:25:36 +00:00
Devang Patel
d7f488e277
Simplify. Use addprefix.
...
llvm-svn: 29501
2006-08-03 17:18:45 +00:00
Chris Lattner
9c2e7678ab
Now that SparcV9 is gone, this logical can be simplified significantly.
...
llvm-svn: 29498
2006-08-03 16:59:17 +00:00
Devang Patel
5cac3e0195
Remove ARM for the moment since it is a work in progress.
...
llvm-svn: 29495
2006-08-03 16:14:09 +00:00
Devang Patel
9cc4c00c10
Add new tool, lto, to do link time optimization. This tool installs
...
dynamic library that linker can use to optimize llvm byte codes at
link time.
llvm-svn: 29494
2006-08-03 15:44:57 +00:00
Chris Lattner
c7d664b581
Fix the build on case-sensitive filesystems :(
...
llvm-svn: 29457
2006-08-01 22:34:35 +00:00
Chris Lattner
bbcb37f911
no need to check readability here
...
llvm-svn: 29449
2006-08-01 18:22:21 +00:00
Chris Lattner
d1f3b45348
No need to check isWriteable here (which isn't sufficient anyway). Just attempt
...
to do the operation and if it fails, oh well.
llvm-svn: 29446
2006-08-01 18:12:29 +00:00
Chris Lattner
09840d9731
Use Path::getFileStatus
...
llvm-svn: 29445
2006-08-01 18:09:46 +00:00
Chris Lattner
d69d77e5d1
Use Path::getFileStatus to get status-related info.
...
llvm-svn: 29444
2006-08-01 18:04:01 +00:00
Jim Laskey
b92b14f422
Introducing plugable register allocators and instruction schedulers.
...
llvm-svn: 29434
2006-08-01 14:21:23 +00:00
Chris Lattner
f4c7ceebaf
Change Path::getStatusInfo to return a boolean and error string on an error
...
instead of throwing an exception. This reduces the amount of code that is
exposed to exceptions (e.g. FileUtilities), though it is clearly only one step
along the way.
llvm-svn: 29395
2006-07-28 22:03:44 +00:00
Patrick Jenkins
35ac912c22
Updating the comments above SplitFunctionsOutOfModule in ExtractFunction.cpp to reflect the changes made to that function. Specifically I am removing the FIXME comment because the issue has been addressed.
...
llvm-svn: 29385
2006-07-28 18:03:01 +00:00
Patrick Jenkins
81c69c3ddb
This commit improves bugpoints speed. On my G4 this changed caused kimwitu++ to run through bugpoint in 1091.15 seconds (user + system time). The time it took to run this on my G4 before I made these changes is 1420.82 seconds (user + system time). This is a speedup of about 5.5 minutes.
...
This is faster because SplitFunctionsOutOfModule no longer calls Clone Module and then removes the functions it doesnt want from the module returned. Instead it creates a module and copies over the specified functions, making changes to the new and old module where neccessary. This reduces the memory demand.
llvm-svn: 29379
2006-07-28 01:19:28 +00:00
Reid Spencer
219ced1bdd
Undo last commit, which was committed accidentally.
...
llvm-svn: 29369
2006-07-27 23:19:00 +00:00
Reid Spencer
dc6201bb05
Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
...
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument.
Patch contributed by Anton Korobeynikov. Thanks!
llvm-svn: 29368
2006-07-27 23:00:30 +00:00
Chris Lattner
e5fe48b84a
Avoid a "scary" make warning for the 1.8 release. This should be reenabled
...
right after 1.8 "ships".
llvm-svn: 29308
2006-07-26 21:14:04 +00:00
Chris Lattner
d40a2002f2
Add llvm2cpp to DIRs list
...
llvm-svn: 29299
2006-07-26 20:19:06 +00:00
Reid Spencer
ed6495426c
Make changes necessary for stopping the build if a cyclic library
...
dependency is found. The find-cycles.pl script now exits with a return code
that equals the number of cycles found. The Makefile was changed to ignore
the status code of find-cycles.pl. This should be removed once the libraries
are free of cyclic dependencies.
llvm-svn: 29290
2006-07-26 17:10:54 +00:00
Reid Spencer
62ffefecfa
Build llvm-config to identify library cycles earlier in the build process.
...
llvm-svn: 29289
2006-07-26 17:06:02 +00:00
Devang Patel
66bddd67f1
Fix MacOSX build failures. (pr841)
...
llvm-svn: 29246
2006-07-21 19:44:55 +00:00
Chris Lattner
109640a240
Build more debugger/selectiondag libraries as archives instead of .o files.
...
This works around bugs in some versions of the cygwin linker.
Patch contributed by Anton Korobeynikov.
llvm-svn: 29239
2006-07-21 00:10:47 +00:00
Andrew Lenharth
0311b39af2
Fix linking on Alpha
...
llvm-svn: 29219
2006-07-20 17:27:58 +00:00
Reid Spencer
cb66ae964e
Finish removal of EH usage from the Archive library. The REQUIRES_EH flag
...
in lib/Bytecode/Archive/Makefile is now removed. One small step closer to
a smaller LLVM.
llvm-svn: 29067
2006-07-07 20:56:50 +00:00
Reid Spencer
9f4deeabf4
Remove EH use from the Archive library and adjust its users accordingly.
...
llvm-svn: 29066
2006-07-07 19:09:14 +00:00
Chris Lattner
9f5a13c5c0
Tools require EH for their top-level try blocks.
...
llvm-svn: 29035
2006-07-07 00:46:19 +00:00
Chris Lattner
c57664f49c
Fix PR819, llvm2cpp should read .bc files, not .ll files.
...
llvm-svn: 29030
2006-07-06 23:48:57 +00:00
Chris Lattner
c55abf6f70
Change the verifier to never throw an exception. Instead verifyModule canoptionally return the string error, which is an easier api for clients touse anyway.
...
llvm-svn: 29017
2006-07-06 18:02:27 +00:00
Reid Spencer
8823d45d18
Split long comment lines.
...
llvm-svn: 28988
2006-07-03 16:46:03 +00:00
Chris Lattner
90a406d6e4
Pass -Xlinker flags to gcc when it builds the shared object.
...
llvm-svn: 28939
2006-06-27 20:35:36 +00:00
Devang Patel
136f284987
Fix cut-n-pasto in comments.
...
llvm-svn: 28928
2006-06-27 18:07:29 +00:00
Chris Lattner
5cf58cd1f8
Remove unneeded libs
...
llvm-svn: 28900
2006-06-21 17:26:13 +00:00
Reid Spencer
f6e3ed4f3f
For PR811:
...
Don't both with the "C" and "cc" extensions as they aren't common and they
the "C" extension conflicts with the "c" extension on operating systems
that have case insensitive file names.
llvm-svn: 28899
2006-06-21 17:21:39 +00:00
Chris Lattner
b5733272c5
Don't pass target name into TargetData anymore, it is never used or needed.
...
llvm-svn: 28831
2006-06-16 18:23:49 +00:00
Reid Spencer
b28a9eedd3
Actually add instructions to the list of defined values so it gets
...
recognized as such! This prevents the CppWriter from treating every
operand as a forward reference and making a mess of the output.
llvm-svn: 28800
2006-06-15 16:09:59 +00:00
Chris Lattner
05b6364eef
Teach bugpoint to kill optimization passes that run over the timeout limit,
...
which allows it to debug optimizer infinite loops. This patch is contributed
by Nick Lewycky, thanks!
llvm-svn: 28763
2006-06-13 03:10:48 +00:00
Chris Lattner
f9bb91746c
After telling GCC to type of the input file with -x asm/-x c, switch back to
...
-x none, to not foul up autodetection of .a file or .dylibs.
llvm-svn: 28741
2006-06-09 21:31:53 +00:00
Chris Lattner
89d4612326
This no longer needs plugins, this it doesn't need all of VMCore.
...
llvm-svn: 28723
2006-06-08 00:25:44 +00:00
Reid Spencer
8077d5bf7f
Shorten a value description so --help out isn't so wide.
...
llvm-svn: 28721
2006-06-07 23:07:51 +00:00
Reid Spencer
c309a17fb7
Make sure this tool links in all of libVMCore.a because it can --load
...
shared objects.
llvm-svn: 28720
2006-06-07 23:06:50 +00:00
Reid Spencer
854aa3ca41
For PR780:
...
1. Add #includes to LinkAllVMCore.h to get Mangler.o and InlineAsm.o
2. Make Mangler.h and InlineAsm.h use the macros to ensure linkage
3. Make each of the tools with --load options include LinkAllVMCore.h
This should be the last set of changes for this bug and 800.
llvm-svn: 28719
2006-06-07 23:03:13 +00:00
Chris Lattner
186880efce
Remove useless noop argument
...
llvm-svn: 28706
2006-06-07 00:43:18 +00:00
Chris Lattner
505ecc53ec
Fix a bug in the following scenario.
...
1. llvm is built with objroot = OBJ and installed.
2. OBJ is deleted or install tree is shipped.
3. llvm-config is run.
In this scenario, llvm-config shouldn't emit an error message at #3 , it
should just know it's not running in the objdir :)
llvm-svn: 28704
2006-06-06 23:54:15 +00:00
Chris Lattner
4fa098a68a
Add a new --libfiles option, for getting fully-qualified pathnames to libraries.
...
This can be used for tools that want makefile rules to depend on the libraries
(e.g. so the tool is relinked when a library changes).
llvm-svn: 28701
2006-06-06 22:38:29 +00:00
Chris Lattner
a9bca01256
Move ToolRunner.(cpp|h) into the bugpoint directory
...
llvm-svn: 28699
2006-06-06 22:30:59 +00:00
Chris Lattner
f16f3e80fc
Make the llvm-config library dependency database depend on all of the libraries.
...
llvm-svn: 28695
2006-06-06 17:43:03 +00:00
Reid Spencer
ff02d7d45a
Add the -Xlinker option to bugpoint which allows an option to be passed
...
through to gcc when its being used as a linker. This allows -L and -l
(and any other) options to be added so that non-complete bytecode files
can be processed with bugpoint. The -Xlinker option can be added as many
times as needed.
llvm-svn: 28692
2006-06-06 00:00:42 +00:00
Chris Lattner
b2e5814fae
temporarily add back this option, I will remove it in a couple days
...
llvm-svn: 28675
2006-06-02 23:43:27 +00:00
Chris Lattner
9cfabaf195
Fix a -pedantic warning
...
llvm-svn: 28670
2006-06-02 22:11:06 +00:00
Chris Lattner
2a1a013f1d
Add flags to get access to build_mode, objdir, srcdir etc.
...
If installed, ignore the prefix the tree is configured with: always use the
prefix that llvm-config is currently at, which may be different if the tree
was moved.
llvm-svn: 28669
2006-06-02 22:03:50 +00:00
Chris Lattner
58709a9965
Make llvm-config "do the right thing" when an install tree is relocated or
...
when run out of a build directory.
llvm-svn: 28668
2006-06-02 21:48:10 +00:00
Chris Lattner
f6262f0c01
Capture the build mode (e.g. Debug/Release) in the llvm-config script.
...
llvm-svn: 28665
2006-06-02 19:13:29 +00:00
Chris Lattner
f49f76bae4
Convert to standard file header
...
llvm-svn: 28663
2006-06-02 18:58:21 +00:00
Chris Lattner
e00b96984a
Remove a couple of things no longer figured out by autoconf
...
llvm-svn: 28662
2006-06-02 18:55:36 +00:00
Reid Spencer
a3e44daec0
Add several more autoconf variables so that new features can be implemented
...
by our illustrious project leader.
llvm-svn: 28659
2006-06-02 18:31:41 +00:00
Chris Lattner
960386a1cf
Add a gross "--use-current-dir-as-prefix" option as a temporary workaround
...
for the "build with one prefix and move the installed files to another dir"
problem.
llvm-svn: 28654
2006-06-02 01:23:18 +00:00
Chris Lattner
0f2c3368eb
Remove some variables from the configured section that aren't.
...
llvm-svn: 28653
2006-06-02 01:04:35 +00:00
Chris Lattner
ebf12c3fcb
Remove more "alpha is archive" stuff.
...
llvm-svn: 28652
2006-06-02 00:56:15 +00:00
Reid Spencer
6919c1b53f
Suppress -pedantic warnings about print("%a")
...
llvm-svn: 28650
2006-06-02 00:39:08 +00:00
Chris Lattner
d04d3c12d6
Remove obsolete CORE_IS_ARCHIVE support
...
llvm-svn: 28649
2006-06-02 00:30:31 +00:00
Chris Lattner
2e015da996
Update the ignore file
...
llvm-svn: 28647
2006-06-02 00:23:15 +00:00
Reid Spencer
af36a41a09
Teach CppWriter how to emit an inline (partial) function.
...
llvm-svn: 28645
2006-06-01 23:43:47 +00:00
Reid Spencer
4be70bcdc9
Restore default arguments for llvm2cpp back to health by declaring an
...
emitted variable to actually have a type (picky, picky, picky!)
llvm-svn: 28625
2006-06-01 07:24:29 +00:00
Reid Spencer
b2d478a52b
Fix a bug where incorrect C++ was being emitted.
...
llvm-svn: 28615
2006-06-01 04:21:20 +00:00
Reid Spencer
89a048bb1a
Build llvm-config into the ToolDir not in the local directory. This makes
...
it more likely to be in a developer's path and consistent with all the
other tools.
llvm-svn: 28613
2006-06-01 01:52:49 +00:00
Reid Spencer
4663b7a174
Oops, llc needs libTarget.a not Target.o
...
llvm-svn: 28611
2006-06-01 01:42:33 +00:00
Reid Spencer
94a443bb29
Use archive libraries instead of object files for VMCore, BCReader,
...
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.
llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Andrew Lenharth
1ba06d364e
fix utostr
...
llvm-svn: 28597
2006-05-31 20:18:56 +00:00
Reid Spencer
055e4e1fae
Major reorganization and extension of the code. The diff on this will be a
...
mess as functions were moved around into a better ordering. The code was
extended to provide various -gen-* options to better control what the
generated output should be. Currently it is possible to generate entire
modules (three different ways), functions, global variables, and types.
llvm-svn: 28589
2006-05-31 17:31:38 +00:00
Reid Spencer
d5b51c6db3
Don't generate module definitions when the -fragment option is given.
...
llvm-svn: 28583
2006-05-31 04:43:19 +00:00
Reid Spencer
abbb7e5b84
llvm2cpp is ready to be compiled so add it to the makefile, but make it
...
optional.
llvm-svn: 28570
2006-05-30 21:20:55 +00:00
Reid Spencer
2a2457158d
Fix more bugs. This version now passes all of the Feature test except for
...
a floating point conversion problem with NAN in intrinsics.ll. llvm2cpp
makes an attempt to provide the correct conversion, based on the
implementation in the CBackend writer, but it doesn't get NAN correct.
llvm-svn: 28568
2006-05-30 21:18:23 +00:00
Reid Spencer
d6d062ca7b
Fix many small bugs in llvm2cpp. This patch gets llvm2cpp working with
...
everything except PHI nodes and one odd recurse/opaque type situation.
PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :)
llvm-svn: 28554
2006-05-30 10:21:41 +00:00
Reid Spencer
605d7b0bcf
First complete version of llvm2cpp that doesn't crash on any of the Feature
...
tests. The output in a few cases still doesn't compile, however.
llvm-svn: 28547
2006-05-30 03:43:49 +00:00
Chris Lattner
439c210c7f
Silly cleanup
...
llvm-svn: 28544
2006-05-29 18:52:52 +00:00
Chris Lattner
39cf538534
silly cleanup
...
llvm-svn: 28543
2006-05-29 18:52:05 +00:00
Reid Spencer
bf39add572
Next batch of implementation:
...
1. Get rid of old AsmWriter cruft that's not needed.
2. Implement several instructions. Enough to get by globalvars.ll and
alignment.ll in the Feature test suite.
3. Handle constants properly (don't repeat definitions).
4. Make the output compatible with llvm-dis for diff purposes.
llvm-svn: 28541
2006-05-29 18:08:06 +00:00
Reid Spencer
a51c941d8a
Fix file header comment.
...
llvm-svn: 28540
2006-05-29 18:06:28 +00:00
Reid Spencer
d526d5be09
Remove temporary testing rules.
...
llvm-svn: 28539
2006-05-29 18:05:59 +00:00
Reid Spencer
631bd45185
Fix two bugs in the CppWriter.cpp:
...
1. Return the module from the MakeModule function so it can be verified.
2. Make sure types get generated with their names
llvm-svn: 28536
2006-05-29 02:58:15 +00:00
Reid Spencer
2bd5cd1602
Fix the file's comment block.
...
llvm-svn: 28535
2006-05-29 02:35:29 +00:00
Reid Spencer
8bd3003e72
Initial Commit of llvm2cpp
...
This is a safekeeping commit. The program is not finished. It currently
handles modules, types, global variables and function declarations. Blocks
and instructions remain to be done.
llvm-svn: 28528
2006-05-29 00:57:22 +00:00
Reid Spencer
574d4e6992
For PR786:
...
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.
llvm-svn: 28453
2006-05-24 19:21:13 +00:00
Chris Lattner
f604017e47
Patches to make the LLVM sources more -pedantic clean. Patch provided
...
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Reid Spencer
f7b690de87
Remove the llvm-db and bugpoint restrictions from the win32 platform so
...
they can be compiled with ming32. The use of fork(2) has been removed.
llvm-svn: 28369
2006-05-17 21:20:50 +00:00
Rafael Espindola
dd49dfc0df
added a skeleton of the ARM backend
...
llvm-svn: 28301
2006-05-14 22:18:28 +00:00
Chris Lattner
017b3a4335
Free memory allocated by copy_env.
...
llvm-svn: 28299
2006-05-14 19:17:28 +00:00
Chris Lattner
084de55c60
print a nice error if bugpoint gets an error reading inputs. Bug identified
...
by coverity.
llvm-svn: 28298
2006-05-14 19:15:56 +00:00
Chris Lattner
aa818c1cad
Fix a bug found by inspection.
...
llvm-svn: 28297
2006-05-14 19:11:40 +00:00