1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 07:22:55 +01:00
Commit Graph

1258 Commits

Author SHA1 Message Date
Reid Spencer
e0641cb8b1 Change banner name to reflect actual program this Makefile is for.
llvm-svn: 16311
2004-09-13 21:15:19 +00:00
Reid Spencer
9de7cdf762 Get rid of compile warning by having llvmExecve return the result of its
call to executeProgram.

llvm-svn: 16306
2004-09-13 15:37:33 +00:00
Reid Spencer
56f9a43e30 Initial implementation of llvm-ld: stolen from gccld.
llvm-svn: 16305
2004-09-13 01:27:53 +00:00
Misha Brukman
0417d5c924 Add LLEE into compilation, but not for Sparc
llvm-svn: 16304
2004-09-13 01:18:30 +00:00
Reid Spencer
b8ceefa24b Excise the -L option since llvm-link should not do library searches. It
just links bytecode files together.

llvm-svn: 16303
2004-09-12 23:39:42 +00:00
Reid Spencer
8f3969bb11 Excise dependent library linking at Chris' request. llvm-link is intended
to provide only the simplest linking of LLVM modules without trying to be
complete. Dependent library linking will be added to gccld or its successor

llvm-svn: 16302
2004-09-12 23:08:29 +00:00
Misha Brukman
21e6aa6874 Squelch compilation warnings on Sparc
llvm-svn: 16301
2004-09-12 23:01:24 +00:00
Reid Spencer
fd4a4b4344 Implement dependent library processing and search paths for them.
llvm-svn: 16287
2004-09-11 04:32:42 +00:00
Misha Brukman
9ca91e92e1 Make file comment span the entire line
llvm-svn: 16249
2004-09-08 19:48:15 +00:00
Reid Spencer
b020e7510f Don't re-instantiate the std::string in catch block.
llvm-svn: 16159
2004-09-03 22:59:32 +00:00
Reid Spencer
c4abcbefb1 Changes For Bug 352
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
2004-09-01 22:55:40 +00:00
Reid Spencer
5dce2f81aa Make sure <cassert> is included for platforms that don't include it via
other header files.

llvm-svn: 16134
2004-09-01 20:36:15 +00:00
Reid Spencer
6e7a5dc434 Initial commit of a configuration file for compiling C++ programs with
the file name pattern *.cpp

llvm-svn: 16117
2004-08-30 06:32:24 +00:00
Reid Spencer
84cf11571d Implement the "setIncludePaths" and "setSymbolDefines" interface methods.
Revise token substitution to be a little faster.
Clean up exception throwing, make sure its always a std::string.

llvm-svn: 16116
2004-08-30 06:29:06 +00:00
Reid Spencer
fb109f9d22 Pass lists of -I and -D options through to the Compiler Driver.
Handle -g and -Wxxx for GCC compatibility

llvm-svn: 16115
2004-08-30 06:27:32 +00:00
Reid Spencer
dac3230f2c Need to throw std::string not const char* if we want error messages to be
caught.

llvm-svn: 16109
2004-08-30 00:06:52 +00:00
Reid Spencer
24cdc1127d Add a missing header file
llvm-svn: 16099
2004-08-29 20:02:28 +00:00
Reid Spencer
e044a2172e Add the LLVMsystem.a library as it is now used for operating system
independence of the tool.

llvm-svn: 16092
2004-08-29 19:29:38 +00:00
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
Reid Spencer
9b8cc2874a add llvmc
llvm-svn: 16090
2004-08-29 19:27:34 +00:00
Reid Spencer
db30d00e08 Convert llvmc to use the lib/System interface instead of directly
using Unix operating system calls.

llvm-svn: 16089
2004-08-29 19:26:56 +00:00
Reid Spencer
2cd624a646 License file for llvmc.
llvm-svn: 16045
2004-08-25 00:41:06 +00:00
Reid Spencer
6faef7d66f Insert declarations for two new functions that support the dependent
libraries feature.

llvm-svn: 16043
2004-08-24 22:55:34 +00:00
Reid Spencer
06c4d33910 Run the compilation actions before we attempt linking work.
Correctly implement the dependent libraries feature so that linked bytecode
files automatically include any dependent libraries they specify.

llvm-svn: 16042
2004-08-24 22:54:32 +00:00
Reid Spencer
5ab60e3f09 Add the directory specified by LLVM_LIB_SEARCH_PATH to the list of
directories to be searched during linking.

llvm-svn: 16041
2004-08-24 22:53:13 +00:00
Reid Spencer
db7904901b Get rid of error messages from CommandLine because -time-passes was
defined twice. We make use of the new TimePassesIsEnabled global boolean
value from Pass.h to access the value.

llvm-svn: 16033
2004-08-24 17:54:26 +00:00
Reid Spencer
04ce97fcfb Adjustments for changes in the configuration language.
llvm-svn: 16026
2004-08-24 14:24:14 +00:00
Reid Spencer
80ef5155ef - Unify format of output messages
- All errors throw std::string
- Default output file name to a.out (if we're linking)

llvm-svn: 16025
2004-08-24 14:05:30 +00:00
Reid Spencer
57f14fb5ba Link with bcreader and vmcore.
llvm-svn: 16024
2004-08-24 14:04:07 +00:00
Reid Spencer
2ab1477240 - Implement the %args% substitution
- Implement parsing of the .output={bytecode|assembly} item.
- Drop parsing support for translator.optimizes, translator.groks_dash_O,
  optimizer.groks_dash_O, translator.output_is_asm, optimizer.output_is_asm
- Add parsing support for translator.output and optimizer.output
- Add optimizer.required parsing support
- Add linker.libs and linker.libpaths parsing support
- Fix error messages to list correct set of tokens expected.
- Rename FileReadable -> FileIsReadable (changed in CompilerDriver.cpp)

llvm-svn: 16023
2004-08-24 14:03:23 +00:00
Reid Spencer
911f0cdb14 - Alphabetize the list of token enumerators.
- Drop old tokens, insert new tokens

llvm-svn: 16022
2004-08-24 13:59:35 +00:00
Reid Spencer
442ebf8ff7 - Rename and rearrange for clarity
- Drop name tokens not used any more (GROKS_DASH_O)
- Rename OUTPUT_IS_ASM as OUTPUT and allow "bytecode" and "assembly" as
  values of it.
- Simplify handleContext (now handleNameContext) arguments and ensure that
  it returns OPTION tokens exactly as scanned.

llvm-svn: 16021
2004-08-24 13:58:37 +00:00
Reid Spencer
3c92d9c9b5 - Remove unused GetSuffix function
- Renamed FileReadable -> FileIsReadable
- Remove support for GROKS_DASH_O; deferr it to %opts% substitution
- Require a -o option except in case of linking where it defaults to a.out
- Fix problem processing *.o and *.bc files.
- Ignore optimization phase if -emit-raw-code
- Correct the assembly generation phase to support -emit-native-code
- Implement dependent library lookup

llvm-svn: 16020
2004-08-24 13:55:17 +00:00
Reid Spencer
4fcef1c5ef Remove unneeded flags.
llvm-svn: 16019
2004-08-24 13:49:57 +00:00
Reid Spencer
da175fc4f5 Provide support for retaining the version number found in a config file.
llvm-svn: 15995
2004-08-22 18:03:25 +00:00
Reid Spencer
a0a8121591 Add the VERSION token.
llvm-svn: 15994
2004-08-22 18:02:41 +00:00
Reid Spencer
d4455d815e Add support for version numbers.
Allow CRLF as a line terminator (as well as plain LF)

llvm-svn: 15993
2004-08-22 18:02:13 +00:00
Reid Spencer
59652b454a Shorten lines so this file can be used as the documentation example
directly. Remove -pre (experimental pass).

llvm-svn: 15992
2004-08-22 18:01:19 +00:00
Reid Spencer
be70baea8a Correct to change interface of the analyzer.
llvm-svn: 15986
2004-08-21 21:00:24 +00:00
Reid Spencer
8a881d2717 Change @ -> % in config files. @name@ might be needed for config files to
themselves be configured via autoconf so its not a good substitition syntax
for llvmc. Furthermore % is more llvmish :)

llvm-svn: 15957
2004-08-20 22:53:11 +00:00
Reid Spencer
deca3b5840 Implement the correct search for configuration files. llvmc will now try
the following in this order:
 1. -config-dir=/path/to/configs
 2. LLVM_CONFIG_DIR=/path/to/configs
 3. ~/.llvm/etc
 4. $prefix/etc
 5. /etc/llvm

llvm-svn: 15950
2004-08-20 09:24:07 +00:00
Reid Spencer
cad614877f Add CONFIG_FILES so the language specific config files can be installed.
llvm-svn: 15949
2004-08-20 09:21:51 +00:00
Reid Spencer
4fa690d247 Implement Assembly support.
Consolidate platform-specific code into "sys" namespace.

llvm-svn: 15947
2004-08-20 09:14:05 +00:00
Reid Spencer
20baacd924 Actually let it compile after file name changes.
llvm-svn: 15931
2004-08-19 21:52:49 +00:00
Reid Spencer
85a95dd68c Moved ConfigData -> Configuration
llvm-svn: 15927
2004-08-19 21:17:53 +00:00
Reid Spencer
d2e0e70267 Implement many new features for llvmc. This is the first version that will
actually execute actions and it is been shown to optimize a Stacker program

llvm-svn: 15912
2004-08-19 04:49:47 +00:00
Reid Spencer
5fdd631700 Back out dependencies on lib/System/Path.h
llvm-svn: 15815
2004-08-16 07:06:38 +00:00
Reid Spencer
cbfb127298 Fix definitions to match tool's actual capabilities.
llvm-svn: 15814
2004-08-16 07:06:13 +00:00
Chris Lattner
9a1b8cf1de Documentation like this doesn't belong here, and now we have the commandguide
llvm-svn: 15785
2004-08-15 22:53:20 +00:00
Reid Spencer
331131e1a2 More Functionality:
- cleaned up lexical scanner
- added support for "lang.optN" configuration items
- added temporary file support (ala lib/System)
- corrected logic for deciding which phases to run
- consolidated the Action and ActionPattern classes

llvm-svn: 15765
2004-08-15 08:19:46 +00:00
Reid Spencer
84327dc15e Initial configuration files (to be installed) for ll (LLVM Assembly) and
st (Stacker) source files. These versions for testing/review only.

llvm-svn: 15764
2004-08-15 08:16:12 +00:00
Reid Spencer
737adb695d Converted to use flex for tokenizing input so we can use an easier to
understand recursive descent parser, we can easily handle more syntax
variety, and we can more easily change the configuration items accepted.

llvm-svn: 15732
2004-08-14 09:37:15 +00:00
Reid Spencer
fe43dbee67 Fix header commentary.
llvm-svn: 15729
2004-08-13 20:25:54 +00:00
Reid Spencer
b0b89a1dd3 Additional functionality. This version handles option parsing and parameter
subsitution correctly for at least .ll and .st files. There's still a long
way to go (i.e. this isn't worth of review yet).

llvm-svn: 15728
2004-08-13 20:22:43 +00:00
Reid Spencer
0d84117719 First version of a utility internal to llvmc that handles the parsing and
construction of configuration data for compiler front ends.

llvm-svn: 15727
2004-08-13 20:21:22 +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
Reid Spencer
9b02858105 Move CompilerDriver.h here.
llvm-svn: 15609
2004-08-10 16:29:18 +00:00
Reid Spencer
0cef958976 Initial makefile for the LLVM Compiler Driver.
llvm-svn: 15608
2004-08-10 16:27:08 +00:00
Reid Spencer
18752e3fa4 First "do nothing" version of the LLVM Compiler Driver. This version just
processes command line arguments and allows --help to be used.

llvm-svn: 15607
2004-08-10 16:26:01 +00:00
Chris Lattner
bf37de72f2 while we're at it, make the libraries be on separate lines
llvm-svn: 15526
2004-08-05 18:32:57 +00:00
Misha Brukman
676315bb41 Lines need to end with \ to make sure they're actually continued
llvm-svn: 15525
2004-08-05 18:31:33 +00:00
Misha Brukman
9fe4bea4d9 * Add PowerPC library to LLC
* Fit used libraries on a few lines

llvm-svn: 15524
2004-08-05 18:24:11 +00:00
Brian Gaeke
f9d31d8a7e sparcv9select is history.
llvm-svn: 15516
2004-08-05 05:17:19 +00:00
Misha Brukman
9da0d0b89f * Convert C++ comments to C
* Add UIUC copyright notice headers

llvm-svn: 15503
2004-08-04 21:19:49 +00:00
Misha Brukman
96d7725c9f Shared libraries are usually prepended with `lib'
llvm-svn: 15502
2004-08-04 21:19:27 +00:00
Brian Gaeke
d0cf43f696 sparcv9select is history
llvm-svn: 15479
2004-08-04 07:39:21 +00:00
Brian Gaeke
1f8045ae93 libsparcv9select is history
llvm-svn: 15478
2004-08-04 07:38:52 +00:00
Chris Lattner
6d1c36b4d4 This pass has proven its metal, remove -disable option.
llvm-svn: 15411
2004-08-02 10:10:08 +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
cac8edbc32 Run DSE at link-time, and turn on an IP alias analysis by default in gccld!
The -disable-globalsmodref is temporary and will be removed eventually.

llvm-svn: 15268
2004-07-27 08:13:15 +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
Chris Lattner
abe9575868 Remove redundant SCCP pass
Add new DSE pass.  Add a temporary option to disable it in case we need it
This is going in after the July 22 nightly tester run, so we'll wait until the 23rd to see it
:)

llvm-svn: 15104
2004-07-22 08:34:33 +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
Chris Lattner
ba8dc803cb Remove this printer
llvm-svn: 14980
2004-07-18 23:43:34 +00:00
Reid Spencer
7f33869f9b bug 122:
- Replace ConstantPointerRef usage with GlobalValue usage

llvm-svn: 14953
2004-07-18 00:44:37 +00:00
Reid Spencer
f687d42d99 bug 122:
- Minimize redundant isa<GlobalValue> usage

llvm-svn: 14952
2004-07-18 00:44:14 +00:00
Chris Lattner
8e058d3e9b Build skeleton target
llvm-svn: 14876
2004-07-16 07:12:46 +00:00
Chris Lattner
9b03d18729 IA64 compat
llvm-svn: 14867
2004-07-16 00:08:28 +00:00
Chris Lattner
1fa594cf7b Actually, use an exception to stop verification. This gives us much better
error messages because verification stops at the first error.

llvm-svn: 14794
2004-07-13 08:48:04 +00:00
Chris Lattner
2d343521e2 There is no reason to abort and print a stack trace if there is a verification
error.  Just print the message like a good little tool.

llvm-svn: 14793
2004-07-13 08:45:41 +00:00
Misha Brukman
c9bf3b6db9 * Tabs to spaces
* Delete extra blank lines

llvm-svn: 14779
2004-07-12 22:58:07 +00:00
Reid Spencer
7e948057af Correct an output typo.
llvm-svn: 14766
2004-07-11 23:20:54 +00:00
Chris Lattner
4cfce6dea3 Prune unused #include
llvm-svn: 14753
2004-07-11 04:05:32 +00:00
Chris Lattner
0171aec781 Goodbye macro hell, hello nice clean and simple code. This also gives llc
the ability to dynamically load and use targets that are not linked into it
statically.  e.g.:

  llc -load libparisc.so -march=parisc foo.bc -o foo.s

llvm-svn: 14751
2004-07-11 04:03:24 +00:00
Chris Lattner
9e43df4c37 Add -load option
llvm-svn: 14740
2004-07-11 01:08:19 +00:00
Chris Lattner
b90bdf1f41 Add a -load option
llvm-svn: 14739
2004-07-11 01:06:59 +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
Brian Gaeke
ca29562605 Build llvm-bcanalyzer
llvm-svn: 14568
2004-07-02 05:59:20 +00:00
Reid Spencer
1642054814 Name Change: llvm-abcd -> llvm-bcanalyzer
llvm-svn: 14555
2004-07-02 03:22:53 +00:00
Reid Spencer
a8352a0357 Implement verification feature.
Ensure output occurs even in the face of an error.

llvm-svn: 14499
2004-06-29 23:34:27 +00:00
Reid Spencer
599f629a83 The analyzer code now lives in the bcreader library. The bcanalyzer lib
is no more.

llvm-svn: 14498
2004-06-29 23:33:31 +00:00
Chris Lattner
3a9388ccf6 Write .bc files to binary ostreams. This shouldn't change anything on unix,
but allows us to generate valid code on hosts (like windows) that do newline
translation for text files.

llvm-svn: 14418
2004-06-25 20:54:43 +00:00
Chris Lattner
1eb0e5635c Make sure to link all IPA's into opt, so that it has access to stuff like
anders-aa

llvm-svn: 14395
2004-06-25 05:19:17 +00:00
Misha Brukman
0756b32837 TransformUtils library is no longer needed since Linker.cpp is in VMCore
llvm-svn: 14352
2004-06-23 17:36:17 +00:00
Misha Brukman
5b0111dddd Linker.h moved to include/llvm/Support
llvm-svn: 14351
2004-06-23 17:33:09 +00:00
Reid Spencer
1cdaa55cda Clean up documentation and naming of variables.
llvm-svn: 14119
2004-06-10 18:38:44 +00:00
Reid Spencer
49b2fca671 Made detailed output the default and changed -details option to -nodetails.
llvm-svn: 14114
2004-06-10 08:24:42 +00:00
Reid Spencer
e967dde9ca Clean up the documentation.
Simplify the file handling. It now only writes to std::cout.

llvm-svn: 14059
2004-06-08 05:56:58 +00:00
Chris Lattner
79426af62f Eliminate more traces of the -c option
llvm-svn: 14049
2004-06-07 18:10:01 +00:00
Reid Spencer
329505d08b Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This tool
will (eventually) provide statistical analysis of bytecode files as well
as the ability to dump them in a low level format (slot numbers not
resolved). The purpose of this is to aid in the Type!=Value change of
bug 122. With this initial release, llvm-abcd merely dumps out the
bytecode. However, the infrastructure for separating bytecode parsing from
handling the parsing events is in place. The style chosen is similar to
SAX XML parsing where a handler object is called to handlign the parsing
events. This probably isn't useful to anyone but me right now as there is
no analysis yet, and the dumper doesn't work on every bytecode file. It
will probably be useful by the end of this week. Note that there is some
duplication of code from the bytecode reader.  This was done to eliminate
errors from being introduced in the reader and to minimize the impact to
other LLVM developers. At some point, the Analyzer and the Reader will be
integrated to use the same infrastructure. Also, sorry for the minor change
to Instruction.h but I just couldn't bring myself to write code that
depends on Instruction internals.

llvm-svn: 14048
2004-06-07 17:53:43 +00:00
Chris Lattner
1789413bac Make gccld copy the llvm-stub program to be the execution wrapper for
bytecode files on win32 systems.  We keep the shell script on unix systems
because it is much more transparent for the users and supports -load
options.

This allows llvmgcc work correctly on win32 systems without the -native or
-native-cbe options.

llvm-svn: 13946
2004-06-02 00:53:57 +00:00
Misha Brukman
312ed8be87 Fix a double negation (in grammar).
llvm-svn: 13943
2004-06-02 00:29:52 +00:00
Chris Lattner
515dea0a05 Move some functions out of gccld.cpp to GenerateCode.cpp. This allows us
to reduce the inter-file interface in the gccld tool and gets some
uninteresting code out of gccld.cpp.

llvm-svn: 13942
2004-06-02 00:22:24 +00:00
Chris Lattner
28c70404df Refactor a bit of code into a function, no functionality changes.
llvm-svn: 13941
2004-06-02 00:10:19 +00:00
Chris Lattner
2abe671b13 No really cygwin, we LIKE .exe'ness.
llvm-svn: 13939
2004-06-02 00:04:54 +00:00
Chris Lattner
daab811ad9 Build the llvm-stub directory
llvm-svn: 13938
2004-06-01 23:49:55 +00:00
Chris Lattner
de1cee210b Initial checkin of a stub executable that can be used by gccld to forward to
bytecode files on systems that don't support #!/bin/sh natively (ie, win32).

llvm-svn: 13937
2004-06-01 23:48:45 +00:00
Chris Lattner
7ef83df9a2 Neuter the -q option. Stop printing the "program modified" message, ever
llvm-svn: 13844
2004-05-27 20:32:10 +00:00
Reid Spencer
726f1be2d2 Re-introduce the -q option and make opt always return 0, even if the
optimization pasess fail. This is necessary to avoid breaking feature
tests in the tests suite that depend on this behavior. *sigh*

llvm-svn: 13832
2004-05-27 16:28:54 +00:00
Reid Spencer
0e77f07d67 Removed the -q option and the default message written to stderr. The
output produces confusing results in TestRunner.sh

llvm-svn: 13828
2004-05-27 08:26:22 +00:00
Chris Lattner
2236327da5 Right, globals aren't values yet..
llvm-svn: 13822
2004-05-27 06:43:37 +00:00
Chris Lattner
06542fe02e Add a simple pass.
llvm-svn: 13820
2004-05-27 06:13:36 +00:00
Chris Lattner
cd68673044 Uhh, that doesn't exist.
llvm-svn: 13815
2004-05-27 05:44:22 +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
Brian Gaeke
e99247512f Allow the user to set the LLVMINTERP environment variable as a workaround, for
when they have to run a gccld shell script without having lli in their path.
This is intended to address Bug 289.

Also, emit the traditional syntax ${1+"$@"} for passing all of a shell script's
args to a subprocess. If you have arguments that have spaces in them, $* will
not preserve the quoting (i.e., the quoted string "foo bar" as an argument will
end up as two arguments "foo" "bar" to lli.)

llvm-svn: 13414
2004-05-07 21:47:36 +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
2c7503786d Add command-line option to select whether to isolate or delete function from
module. Default is `isolate' as before.

llvm-svn: 13113
2004-04-22 23:07:39 +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
Alkis Evlogimenos
904f4f9a21 Include cerrno (gcc-3.4 fix)
llvm-svn: 13091
2004-04-21 16:11:40 +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
0caf28f4ff Move loop optimization passes up, add loop unroller
llvm-svn: 13030
2004-04-18 05:21:01 +00:00
Misha Brukman
ab36a84bda Don't use invalid HTML in a doxygen comment.
llvm-svn: 12962
2004-04-15 15:23:45 +00:00
Chris Lattner
0bb60b108d Add a couple more IPO's
llvm-svn: 12863
2004-04-12 05:38:15 +00:00
Chris Lattner
4b1e880424 finegrainify namespacification
llvm-svn: 12862
2004-04-12 05:38: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
Chris Lattner
caefe03e39 Disable strict alias analysis in the backend c compiler, as the code we
generate is not TBAA safe.

llvm-svn: 12774
2004-04-08 15:18:59 +00:00
Chris Lattner
825c162788 Revert previous patch, I'm a moron :)
llvm-svn: 12773
2004-04-08 15:18:03 +00:00
Chris Lattner
5608c6da7e Right, we break strict aliasing requirements. Make sure to disable strict
aliasing in the C compiler.

llvm-svn: 12772
2004-04-08 15:14:43 +00:00
Misha Brukman
e2d817bc26 Wrap at 80 cols.
llvm-svn: 12701
2004-04-06 17:04:30 +00:00
Chris Lattner
1a40aaf3ba Minor cleanups
llvm-svn: 12700
2004-04-06 16:54:04 +00:00
Chris Lattner
3259504cce Add a new gccld -native-cbe option which causes gccld to generate native code
for the application with the C backend instead of the native LLVM code generator

llvm-svn: 12698
2004-04-06 16:43:13 +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
f592eff643 Remove obsolete analyses
llvm-svn: 12634
2004-04-02 20:56:33 +00:00
Chris Lattner
5ad71e4688 Tweak libraries for scev changes
llvm-svn: 12625
2004-04-02 20:32:46 +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
a262913211 Fix wonky header
Address PR305: LLVM tools will happily spew bytecode onto your terminal

llvm-svn: 12602
2004-04-02 05:06:57 +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
Brian Gaeke
f6f76523cb Add a better head-of-file comment.
llvm-svn: 12447
2004-03-16 21:47:20 +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
228bd4e931 Turn on argument promotion in gccas. This can give us substantially better
code in cases where the file has lots of static functions or anon namespaces.

llvm-svn: 12361
2004-03-13 21:38:35 +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
Misha Brukman
34ab36e8c8 SparcV8 removed until it grows up becomes a mature backend.
llvm-svn: 12288
2004-03-11 18:16:33 +00:00
Chris Lattner
d07c6d9c03 Annotate functions with edge counts as well, if they are available.
llvm-svn: 12233
2004-03-08 20:04:32 +00:00
Chris Lattner
0179360703 Run the new pass in gccld now that it passes all tests
llvm-svn: 12196
2004-03-07 22:12:40 +00:00
Chris Lattner
ab9a9c4119 Add a hook to run with the V8 target, though it doesn't currently work. Also
mark the PPC backend as experimental

llvm-svn: 11962
2004-02-28 19:55:16 +00:00
Chris Lattner
dc004a7269 We have this snazzy link-time optimizer. How about we start using it? This
removes some cruft from 255.vortex, cleaning up after DAE and IPCP, which
do horrible, beautiful, things to vortex.

llvm-svn: 11861
2004-02-26 03:34:30 +00:00
Chris Lattner
24c4dd56b5 Add a new pass, run internalize first
llvm-svn: 11839
2004-02-25 21:35:13 +00:00
Chris Lattner
0dfe43a53a Add a new pass
llvm-svn: 11838
2004-02-25 21:35:02 +00:00
Brian Gaeke
c6de948cd1 Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)
llvm-svn: 11827
2004-02-25 19:08:12 +00:00
Alkis Evlogimenos
15ac9b976d Include Config/config.h for SHLIBEXT.
llvm-svn: 11779
2004-02-23 22:42:51 +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
3c9511b0ac Make sure to print a stack trace whenever an error signal is delivered to
the tool.

llvm-svn: 11633
2004-02-19 20:32:39 +00:00
Chris Lattner
f8c22e360b Make sure to print a stack trace whenever an error signal is delivered to the
tool.

llvm-svn: 11632
2004-02-19 20:32:12 +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
9a0bcd709d Give extract -o and -f options, just like every other tool!
llvm-svn: 11580
2004-02-18 16:53:59 +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
Chris Lattner
81eae02a9e When the user runs 'llc foo.bc -march=c', write the output to "foo.cbe.c", not
to "foo.s".

llvm-svn: 11485
2004-02-15 22:54:19 +00:00
Misha Brukman
b872c6fe8d Break a line that's over 80cols into two.
llvm-svn: 11423
2004-02-13 23:46:47 +00:00
Chris Lattner
e2a5f8c233 Do not advertise our -c option anymore
llvm-svn: 11413
2004-02-13 23:24:46 +00:00
Chris Lattner
a2896eaee0 Mercilessly rip the cbackend out of llvm-dis. Leave a helpful error message
for those who have not heard the news.

llvm-svn: 11412
2004-02-13 23:22:40 +00:00
Chris Lattner
5a793ef4b5 Add support for -march=c
llvm-svn: 11410
2004-02-13 23:19:09 +00:00
Chris Lattner
93da3b1886 Change how we create the cwriter, and add a buttload of libraries that it now
needs.  This will be fixed shortly

llvm-svn: 11407
2004-02-13 23:01:14 +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
8bacf91656 Factor profile information loading OUT of llvm-prof into libanalysis
llvm-svn: 11316
2004-02-11 05:56:07 +00:00
Brian Gaeke
b926a20f6c Fix indentation of selectiondag.
I don't know why its indentation has been bugging me, but it has.

llvm-svn: 11180
2004-02-08 05:49:29 +00:00
Chris Lattner
58a3a94fe7 Minor change to breakpoint (lack of) support
llvm-svn: 11169
2004-02-08 00:06:20 +00:00
Brian Gaeke
e3e4d098e1 Add a -march=powerpc option. Automatically select it if this looks like a
big-endian, 32-bit module, or if __ppc__, __POWERPC__, or __APPLE__ are
defined.

llvm-svn: 11075
2004-02-02 19:06:12 +00:00
Brian Gaeke
cc540cca84 Link in the PowerPC back-end.
llvm-svn: 11074
2004-02-02 19:05:52 +00:00
Chris Lattner
15ea2aa0ff Now that tailduplication does not bork SSA form, run mem2reg earlier in gccas.
This tremendously improves the code generated by the LLVM optimizer, primarily
by making the inliner more aggressive.  For example, it improves the stepanov
benchmark from 55.56 mega-additions/sec to 98.04 Ma/s.  It also improves the
oopack/iterator benchmark from 338.3MFLOPS/s to 1103.4MFLOPS/s.  Less noteworthy,
it improves oopack/matrix from 573 -> 641 MFLOPS/s.

llvm-svn: 11053
2004-02-01 07:24:53 +00:00
John Criswell
a43fe7d309 Fixed PR#197. The libcrtend library is removed from the library linking list
when creating native executables.

llvm-svn: 10979
2004-01-26 23:51:10 +00:00
John Criswell
3a994220ad Fixes for PR214. Use the SHLIBEXT variable instead of hardcoding .so into
every file.

llvm-svn: 10976
2004-01-26 20:59:41 +00:00
Chris Lattner
9ec6983d9e Make sure to verify the result before writing out the bytecode file. Not doing
so can cause obscure errors downstream.

llvm-svn: 10840
2004-01-14 03:39:46 +00:00
Chris Lattner
98f2200fb2 finegrainify namespacification
llvm-svn: 10839
2004-01-14 03:38:37 +00:00
Chris Lattner
e4a3a98db3 Remove standard C header wrappers
llvm-svn: 10748
2004-01-10 19:15:38 +00:00
Chris Lattner
ef4ace0cd9 Remove wrappers around std c files
llvm-svn: 10744
2004-01-10 19:12:09 +00:00
Chris Lattner
26d7d42141 Ugh, fix some copy and pasted code that somehow never got compiled or something
:(

llvm-svn: 10706
2004-01-06 23:46:17 +00:00
Chris Lattner
56a2afdc26 * Implement set/show args
* Implement support for arguments to the 'run' command
* Minor cleanups and fixes

llvm-svn: 10703
2004-01-06 05:37:16 +00:00
Chris Lattner
b699064224 implement the "null command" which repeats the last command
llvm-svn: 10702
2004-01-06 05:36:30 +00:00
Chris Lattner
cfeebf332f /me slaps head
llvm-svn: 10694
2004-01-05 05:47:19 +00:00
Chris Lattner
2bbc048d2c Add new directory
llvm-svn: 10688
2004-01-05 05:28:15 +00:00
Chris Lattner
3725336680 Initial checkin of the LLVM Source-Level Debugger. This is incomplete, but
a good start.  The status is documented in docs/SourceLevelDebugging.html

llvm-svn: 10687
2004-01-05 05:27:31 +00:00
Chris Lattner
3be2513e7d Remove some pointless #includes
llvm-svn: 10653
2003-12-30 07:50:31 +00:00
Chris Lattner
aac7c59bb7 Use getFileSize() instead of sys/stat.h directly
llvm-svn: 10652
2003-12-30 07:48:17 +00:00
Chris Lattner
ba378df132 Use new getFileSize function. Eliminate some using directives. Reorder #includes a bit
llvm-svn: 10651
2003-12-30 07:45:46 +00:00
Chris Lattner
886cc8ad49 Add a -disable-opt flag to gccas, so that we can use -Wa,-disable-opt just
like -Wl,-disable-opt

llvm-svn: 10647
2003-12-30 03:24:27 +00:00
Chris Lattner
2a1a75c9aa Pass extra arguments around n stuph
llvm-svn: 10631
2003-12-28 09:51:04 +00:00
Chris Lattner
66c9cb837b Factor out code to ExecutionEngine
llvm-svn: 10614
2003-12-26 06:49:53 +00:00
Chris Lattner
e0269dd42a Simplify code
llvm-svn: 10613
2003-12-26 06:36:20 +00:00
Chris Lattner
4c0d6c8d46 * eliminate the -f argument to lli, as it was silly and never useful anyway
* Inline callMain function
* Remove hack from the ExecutionEngines where the 'run' method would automatically
  run atExit functions.  Fixing this requires explicitly calling exit if main returns

llvm-svn: 10611
2003-12-26 06:14:47 +00:00
Chris Lattner
d530851235 update comment
llvm-svn: 10607
2003-12-26 05:07:35 +00:00
John Criswell
207cf0a20d Modified the logic so that library objects with main() are only linked in
if the program currently has main undefined.

llvm-svn: 10597
2003-12-23 20:27:14 +00:00
John Criswell
8f95f1d2ca Modified the linker so that it always links in an object from an archive
that defines the symbol "main."  This is a hack that ensures that programs
that place their main function in a library and then link it in
(i.e. Apache 2.x) get their main function linked in.

There is probably a more correct way to do this, but this works for now.

llvm-svn: 10594
2003-12-23 17:37:06 +00:00
Chris Lattner
148767d3bd Rename method
llvm-svn: 10593
2003-12-23 09:41:45 +00:00
Chris Lattner
ce63e55d3f There is no reason to add -load support to LLC
llvm-svn: 10483
2003-12-15 23:10:25 +00:00
Brian Gaeke
528af07c42 Add an assertion to make sure we are at least getting argv[0] right.
Use a clearer error message when we fail to load a program.

llvm-svn: 10414
2003-12-12 00:47:19 +00:00
Chris Lattner
1dc6025d53 Run tailcall elimination in a more logical place
llvm-svn: 10402
2003-12-11 17:50:32 +00:00
Chris Lattner
effecb429c Make 'opt -o -' work correctly instead of creating a file named './-'
llvm-svn: 10359
2003-12-10 14:41:33 +00:00
John Criswell
90e72c9cba Added the -h option for compatibility with other linkers.
llvm-svn: 10335
2003-12-09 15:39:11 +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
ccff2f467f It is now after pldi. This issue has been fixed, so remove the hack
llvm-svn: 10306
2003-12-07 01:44:18 +00:00
Tanya Lattner
0499e53fe5 New command line parsing. This isn't as perfect as I would have liked. The CommandLine Library needs to be extended, in order to parse the options and allow for optional dashes. In addition, the help option isn't correct since I do the parsing mostly myself. But this is in the ocorrect ar format.
llvm-svn: 10297
2003-12-06 23:01:25 +00:00
Chris Lattner
5b5415c547 be 3.4 happy
llvm-svn: 10265
2003-11-29 20:04:13 +00:00
Chris Lattner
21551f0cd4 Fix compatibility with gcc 3.4
llvm-svn: 10262
2003-11-29 19:45:47 +00:00
Chris Lattner
d4174e7703 The function resolving pass must be run, even if -disable-opt is specified
llvm-svn: 10250
2003-11-28 09:44:03 +00:00
Chris Lattner
e7ad2f6b04 * The return value of LinkLibraries is ignored, so remove it.
* Finegrainify namespacification of Linker.cpp
* If linking a library in fails, do not STOP LINKING IN LIBRARIES AND
  CONTINUE ANYWAY!  Instead, just output the warning, and keep going. :)

llvm-svn: 10249
2003-11-28 07:44:09 +00:00
Misha Brukman
1af6ec9cbf I'm gonna be picky and say we don't really need that trailing slash "lib/"
llvm-svn: 10196
2003-11-24 05:31:57 +00:00
Misha Brukman
407528ec44 Make sure we ONLY add a `-load' switch to the JIT command line if the file is
verified as having an ELF header. This fixes PR151.

llvm-svn: 10195
2003-11-24 05:29:42 +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
3eaa9eec80 Revert the previous patch since it causes lots of miscompilations. :( :(
llvm-svn: 10172
2003-11-22 19:07:47 +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
Chris Lattner
1b7c6e072b Reorder passes a bit. In particular, it makes sense to run globaldce IMMEDIATELY after funcresolve. Also, run the mem2reg pass _early_ so that IPCP and DAE actually do stuff.
Run instcombine and simplify cfg after this to cleanup the intraprocedural messes we create.

llvm-svn: 10134
2003-11-21 21:44:35 +00:00
Misha Brukman
c147a00407 When writing out the runner script, add -load=<lib> lines to pull in all the
shared objects automagically, so it doesn't have to be done by hand.

llvm-svn: 10114
2003-11-20 19:08:42 +00:00
Misha Brukman
f045db38cd Add ability to search only for native shared object, and expose the
functionality to the rest of gccld.

llvm-svn: 10113
2003-11-20 19:08:06 +00:00
Misha Brukman
19a9eeb585 For consistency, removed space between function name and left paren in function
call, i.e. [ addPass (...) ]  =>  [ addPass(...) ]

llvm-svn: 10105
2003-11-20 06:26:15 +00:00
Misha Brukman
f516afa0c0 * Doxygenified comments, simplifying them and shortening in the process
* Eliminated extra space

llvm-svn: 10104
2003-11-20 06:21:54 +00:00
Brian Gaeke
f67fef08c2 Unbreak the "-" as filename hack.
llvm-svn: 10099
2003-11-19 22:15:00 +00:00
Brian Gaeke
6669b6c511 Also print an error msg. for files we cannot currently deal with.
llvm-svn: 10097
2003-11-19 21:57:30 +00:00
Brian Gaeke
1b0a946551 Fix PR134, by checking FileOpenable() on each input file before analyzing its
type.

llvm-svn: 10096
2003-11-19 21:52:09 +00:00
Brian Gaeke
570e50fc30 Include Support/FileUtilities.h.
Print module identifier in DumpSymbolNamesFromModule().
In DumpSymbolNamesFromFile(), check whether it is an archive or a bytecode
 file, and call the corresponding reader function (ParseBytecodeFile or
 ReadArchiveFile).
Unconditionally set MultipleFiles for archives.
Fixes PR117.

llvm-svn: 10044
2003-11-16 23:34:13 +00:00
Brian Gaeke
2016376753 Add a -verify option to verify the results of gccld passes.
Add a -disable-opt option to turn off gccld optimization passes.

llvm-svn: 10040
2003-11-16 23:07:28 +00:00
Brian Gaeke
c65d049581 When we find a module we want, in an archive, in verbose mode,
print out the module's identifier (which should now contain the name
 of both the archive and the module.)
Wrap some lines at 80 cols.

llvm-svn: 10039
2003-11-16 23:07:13 +00:00
Chris Lattner
b6b3b55e95 As the comments indicate, this is a temporary, repulsive, hack
llvm-svn: 9982
2003-11-13 19:26:54 +00:00
Chris Lattner
463dc76802 Restore the -llvm option
llvm-svn: 9915
2003-11-12 04:59:59 +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
Brian Gaeke
dad096c2e1 Move IsArchive, IsBytecode to FileUtilities. Fix up some method comments.
llvm-svn: 9902
2003-11-11 21:54:01 +00:00
Misha Brukman
fd7a4f1337 'Tis quite silly to check for a cached version of the entire executable. That
amounts to checking for a completely-native version. We'll cache on a
function-by-function basis instead (in the JIT's CodeEmitter).

llvm-svn: 9894
2003-11-11 18:38:56 +00:00
Brian Gaeke
aaa29b094d This version of Linker.cpp works a lot better, but it's a little messy. Sorry.
Use FileOpenable() instead of FileExists().
Create IsBytecode() predicate -- like IsArchive(), but for bytecode files.
Use IsBytecode() before trying to load any file as a bytecode file.

llvm-svn: 9893
2003-11-11 18:27:37 +00:00
Misha Brukman
00298d15e4 The caching will not live in LLEE's execve() handler; that's suboptimal.
llvm-svn: 9890
2003-11-11 18:23:09 +00:00
Chris Lattner
14ab34bf94 Give gccld more guts
llvm-svn: 9835
2003-11-09 19:55:09 +00:00
Chris Lattner
1dd7f6c133 Add new command line option
llvm-svn: 9754
2003-11-06 20:29:25 +00:00
Brian Gaeke
4388a20bc3 Give this header file an Emacs mode-line.
llvm-svn: 9749
2003-11-05 22:13:10 +00:00
Brian Gaeke
a38dea74cc Do not assume the first file is a bytecode file. Instead, construct a dummy
Module and link things into that.

Also, fix a typo in an error message.

llvm-svn: 9748
2003-11-05 22:13:00 +00:00
Brian Gaeke
4f8c392983 Shorten and correct some function-header comments.
Make "verbose" output MUCH nicer. Now it tells you when you are linking a
bytecode file, or an archive, and whether it's because you called it by name,
or because you gave it a -l option, and it says "Trying" before it takes
action and prints a message in the past tense afterwards.

Make LinkFiles not skip the first file in Files.

Make LinkFiles warn you if it can't find a file and LLVM_LIB_SEARCH_PATH is
unset.

llvm-svn: 9747
2003-11-05 22:12:52 +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
16a148787e Make -r work, fixing PR 91
llvm-svn: 9724
2003-11-05 06:05:21 +00:00
Chris Lattner
dc9da3878f If linking a library, do not link other libraries, like libc, into it!
This fixes lots of annoying warnings and error messages

llvm-svn: 9677
2003-11-03 17:27:17 +00:00
Chris Lattner
57ab49a333 never print zero executions blocks
llvm-svn: 9626
2003-10-31 00:34:05 +00:00
Chris Lattner
ad78f589c2 Simplify code
llvm-svn: 9625
2003-10-31 00:20:09 +00:00
Chris Lattner
070a7bbb3a Add percentage info
llvm-svn: 9624
2003-10-31 00:13:26 +00:00
Chris Lattner
9f8be3ae6c Hrm, some of my counters are wrapping around 32 bits
llvm-svn: 9623
2003-10-31 00:06:57 +00:00
Chris Lattner
101db596b9 If only have function profile, don't print out "not executed" for all of the blocks :)
llvm-svn: 9622
2003-10-30 23:44:28 +00:00
Chris Lattner
e1e31f80d6 Add the ability to print out llvm code when the -annotated-llvm option is given
llvm-svn: 9621
2003-10-30 23:42:09 +00:00