1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
Commit Graph

1292 Commits

Author SHA1 Message Date
Tanya Lattner
d29c748a57 Adding option to llc for ModuloScheduling. By default it is turned off.
llvm-svn: 17959
2004-11-18 18:38:01 +00:00
Chris Lattner
5c228644f6 -disable-opt is not -O0, it's okay for it to disable internalize.
llvm-svn: 17911
2004-11-17 16:41:19 +00:00
Chris Lattner
25b6bcd63a Even with -disable-opt we should still internalize and strip if requested.
llvm-svn: 17903
2004-11-16 18:59:20 +00:00
Reid Spencer
48d7d29b0b Per code review: \
* Make static things static \
* Get rid of unused TmpArchive variable \
* Implement symbol table printing \
* Adjust to changes in llvm::Archive interface \
* Make sure we destruct objects even if exceptions occur. \
* Fix a typo in an output string.

llvm-svn: 17878
2004-11-16 06:41:20 +00:00
Reid Spencer
c7d6bdb196 Per code review: \
* hide the compatibility option \
* Make static things static \
* Use cl::extrahelp instead of cl::MoreHelp (defunct) \
* Use cl::PrintHelpMessage instead of our own printUse function \
* Use a std::set<sys::Path> for the path list because its now required by \
  the sys::Path class and also ensues directories are traversed in sorted \
  order.\
* Implement symbol table printing locally instead of in libLLVMArchive \
* Adjust to changes in llvm::Archive interface \
* Make sure we destruct objects even if exceptions occur. \
* Fix a typo in an output string.

llvm-svn: 17877
2004-11-16 06:41:09 +00:00
Chris Lattner
0b306d9680 Make this code not depend on LinkModules leaving the second argument unmolested.
llvm-svn: 17874
2004-11-16 06:31:38 +00:00
Tanya Lattner
c92390c9a9 This file was originally developed by the LLVM research group so this comment should stay. I also do NOT want my name explicity listed on src files. I am already mentioned in the credits.
llvm-svn: 17833
2004-11-15 19:21:49 +00:00
Reid Spencer
c3222d9d1f Linker.h moved to include/llvm.
llvm-svn: 17805
2004-11-14 23:25:32 +00:00
Reid Spencer
36e470d2bc bugpoint needs LLVMLinker.a now.
llvm-svn: 17804
2004-11-14 23:23:18 +00:00
Reid Spencer
94fa3a24c4 Correct call of methods whose names have changed.
llvm-svn: 17803
2004-11-14 23:17:41 +00:00
Reid Spencer
9bdb374f62 This program needs libLLVMLinker.a now
llvm-svn: 17802
2004-11-14 23:12:22 +00:00
Reid Spencer
7a004d2749 Linker.h has a new home.
llvm-svn: 17801
2004-11-14 23:00:08 +00:00
Reid Spencer
bbdeb2181d Fix usage of changed function prototype
llvm-svn: 17798
2004-11-14 22:30:54 +00:00
Reid Spencer
a854a425da A tool for adding a symbol table to LLVM Archives
llvm-svn: 17797
2004-11-14 22:29:21 +00:00
Reid Spencer
1a2ec6a2e6 Makefile for llvm-ranlib tool
llvm-svn: 17796
2004-11-14 22:28:33 +00:00
Reid Spencer
37c081cfb6 *Fix usage of changed function prototype*Use Archive interface to symbol table for archives
llvm-svn: 17795
2004-11-14 22:27:46 +00:00
Reid Spencer
7cd9ae667f This tool needs libLLVMArchive now
llvm-svn: 17794
2004-11-14 22:27:00 +00:00
Reid Spencer
2b381ffee0 Remove linking declarations (in Linker.h now)
llvm-svn: 17793
2004-11-14 22:25:26 +00:00
Reid Spencer
acdf529c8a We need the libLLVMArchive library now
llvm-svn: 17792
2004-11-14 22:23:31 +00:00
Reid Spencer
78e48422d0 Moved to lib/Linker (common with gccld)
llvm-svn: 17791
2004-11-14 22:22:45 +00:00
Reid Spencer
a58ac8264a Total rewrite using Archive library & new functionality
llvm-svn: 17790
2004-11-14 22:20:07 +00:00
Reid Spencer
39740ecd0e This tool needs the libLLVMArchive library now.
llvm-svn: 17789
2004-11-14 22:19:21 +00:00
Reid Spencer
59664fe944 Remove linking declarations (in Linker.h now)
llvm-svn: 17788
2004-11-14 22:17:49 +00:00
Reid Spencer
49d2c02f84 Provide exception handling
llvm-svn: 17787
2004-11-14 22:17:03 +00:00
Reid Spencer
e51435be09 Moved to lib/Linker
llvm-svn: 17786
2004-11-14 22:15:31 +00:00
Reid Spencer
8a444d6b09 Add the llvm-ranlib tool
llvm-svn: 17785
2004-11-14 22:13:59 +00:00
Reid Spencer
ec5e394536 Make sure llee can deal with compressed bytecode too.
llvm-svn: 17652
2004-11-09 20:21:25 +00:00
Misha Brukman
a0f0b891d5 Output the program name (in this case, gccld) with warning about invalid files
llvm-svn: 17638
2004-11-09 04:24:59 +00:00
Misha Brukman
f8e7ae05a9 Don't silently ignore invalid files: tell the user!
llvm-svn: 17633
2004-11-08 22:03:10 +00:00
Reid Spencer
d2802b4bde Add a --disable-compression option to gccas so the default compression of
bytecode can be defeated.

llvm-svn: 17626
2004-11-08 17:37:04 +00:00
Misha Brukman
051e5530e7 Use LLVMToolDir instead of ToolDir because the latter is no longer set (?)
llvm-svn: 17594
2004-11-07 22:26:43 +00:00
Reid Spencer
1119c153b7 Rename the option for defeating compression to be a little more specific.
llvm-svn: 17567
2004-11-07 05:50:16 +00:00
Reid Spencer
19343b7bff Enable compression by default.
llvm-svn: 17566
2004-11-07 05:43:51 +00:00
Reid Spencer
12a46e8081 * Enable bytecode compression by default
* Provide a -no-compress option to defeat compression.

llvm-svn: 17565
2004-11-07 05:41:32 +00:00
Reid Spencer
102bbfe16b Turn on compression by default.
Change --compress to --no-compress so compression can be turned off.

llvm-svn: 17564
2004-11-07 05:37:27 +00:00
Reid Spencer
a81994464f Add support for compressed bytecode
llvm-svn: 17535
2004-11-06 23:17:23 +00:00
Reid Spencer
7090e6a875 Stop propagating method names that violate the coding standard
llvm-svn: 17498
2004-11-05 22:15:36 +00:00
Misha Brukman
e7c9d80670 No, really, the library name is `LLVMexecve'
llvm-svn: 17366
2004-10-31 17:30:52 +00:00
Reid Spencer
acb1305e99 Internalize variable names to prevent recursive assignment. Cleanup docs.
llvm-svn: 17359
2004-10-30 09:19:36 +00:00
Misha Brukman
a120d25c45 Fix file header comment
llvm-svn: 17350
2004-10-29 23:26:09 +00:00
Misha Brukman
6260f0e534 LLEE execve() wrapper library has changed its name and location
llvm-svn: 17339
2004-10-29 18:36:51 +00:00
Brian Gaeke
d194b9a7e1 Fix library names for sparc
llvm-svn: 17311
2004-10-28 06:39:10 +00:00
Reid Spencer
5ae644e47b Remove the FORCE token, rename VERSION to VERSION_TOK so it doesn't
conflict with configuration variables and #defines.

llvm-svn: 17298
2004-10-28 04:06:15 +00:00
Reid Spencer
ec563c71fd Implement linking.
llvm-svn: 17297
2004-10-28 04:05:06 +00:00
Reid Spencer
9274b7af51 Eliminate the force flag, configuration item, and related support
llvm-svn: 17296
2004-10-28 04:04:38 +00:00
Reid Spencer
dcab3f96ae Pass -f to stkrc to ensure the output file is always written.
llvm-svn: 17295
2004-10-28 03:57:49 +00:00
Reid Spencer
bca701fa5e Eliminate the -F option (for forcing output) .. not needed
Create GCC compatible -Wx, aliases for the existing -T options.

llvm-svn: 17294
2004-10-28 03:56:16 +00:00
Reid Spencer
318a61aa62 Add llvm-ld to the subdirs to be built
llvm-svn: 17293
2004-10-28 03:53:02 +00:00
Reid Spencer
8c4a0d14b9 Convert to new library names.
llvm-svn: 17292
2004-10-28 03:50:43 +00:00
Reid Spencer
2534c3ff2c Update for library name change.
llvm-svn: 17287
2004-10-28 00:11:43 +00:00
Reid Spencer
d3f7233495 Change Library Names Not To Conflict With Others When Installed
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Chris Lattner
49cb4d0a92 Improve help output from llvm-db 'info' command. Patch contributed by
Michael McCracken!

llvm-svn: 17241
2004-10-26 05:46:17 +00:00
Reid Spencer
2f74ad1e36 Add EXTRA_DIST for additional files to be distributed.
llvm-svn: 17233
2004-10-26 03:12:11 +00:00
Chris Lattner
c5f1803fa0 Remove template args that are the same as the default
llvm-svn: 17223
2004-10-25 19:09:41 +00:00
Reid Spencer
242c69bb0c Make clean quieter.
llvm-svn: 17191
2004-10-23 19:49:20 +00:00
Reid Spencer
5574857063 We're not doing automake any more
llvm-svn: 17168
2004-10-22 21:02:23 +00:00
Reid Spencer
e48ba34fd4 We won't use automake
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer
ce514b1c2c Initial automake generated Makefile template
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Reid Spencer
19a45269fa Actually link all the analysis passes and their dependencies.
llvm-svn: 17114
2004-10-18 03:32:12 +00:00
Reid Spencer
2f5d7cdf7e Remove extra comma.
llvm-svn: 17113
2004-10-18 03:26:21 +00:00
Reid Spencer
6afd317860 Actually link in all the analysis passes.
llvm-svn: 17112
2004-10-18 03:22:48 +00:00
Chris Lattner
744915c985 Reid added --version to the CommandLine lib. Don't conflict with it.
llvm-svn: 17076
2004-10-17 02:49:08 +00:00
Misha Brukman
f63dddc787 Fix hyphenation and quoting style for great justice
llvm-svn: 17024
2004-10-15 23:22:48 +00:00
Misha Brukman
612011d3d5 * We don't use the ENABLE_*_JIT flags in the source base anymore
* Convert references to Sparc to SparcV9 to clearly identify CPU type

llvm-svn: 16998
2004-10-14 20:06:36 +00:00
Misha Brukman
4043f35251 Use the shared Makefile.JIT for JIT-enablement
llvm-svn: 16992
2004-10-14 19:01:25 +00:00
Misha Brukman
86c8f92142 Since several tools and examples want JIT support, factor out the process of
adding the right libs for any given architecture's JIT into a single place

llvm-svn: 16989
2004-10-14 18:58:19 +00:00
Misha Brukman
628db67ac2 Enable the PowerPC JIT by compiling powerpc.o library into lli
llvm-svn: 16982
2004-10-14 06:35:11 +00:00
Reid Spencer
e6418ec30f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Misha Brukman
8d390f980a No space allowed between \ and end-of-line
llvm-svn: 16940
2004-10-12 19:17:11 +00:00
Misha Brukman
f0a12b512f Wrap lines at 80 cols
llvm-svn: 16939
2004-10-12 18:35:57 +00:00
Chris Lattner
6a42a4c820 Don't miss global optimizations because we run before the inliner
llvm-svn: 16913
2004-10-11 04:47:18 +00:00
Reid Spencer
85d2758f11 Initial version of automake Makefile.am file.
llvm-svn: 16898
2004-10-10 22:52:14 +00:00
Reid Spencer
549fc4abc1 Fix named of a library.
llvm-svn: 16896
2004-10-10 22:50:31 +00:00
Reid Spencer
817a069ea4 Initial version of automake Makefile.am file.
llvm-svn: 16894
2004-10-10 22:36:40 +00:00
Misha Brukman
85ca837989 Use the SparcV9-marked instr scheduling library
llvm-svn: 16851
2004-10-08 18:14:56 +00:00
Chris Lattner
8ddca97a5a Rename pass
llvm-svn: 16801
2004-10-07 04:12:02 +00:00
Chris Lattner
ca55a0ff6e Hrm, if there is an error loading a file, try printing a message so the
user knows that...

llvm-svn: 16524
2004-09-27 16:41:01 +00:00
Reid Spencer
c3f7948472 Add some missing #includes
llvm-svn: 16517
2004-09-25 16:00:07 +00:00
Reid Spencer
26de3ccc82 Qualify Path with sys:: namespace so this file compiles.
llvm-svn: 16516
2004-09-25 15:59:41 +00:00
Chris Lattner
43c0372c0b 'Pass' should now not be derived from by clients. Instead, they should derive
from ModulePass.  Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.

llvm-svn: 16436
2004-09-20 04:48:05 +00:00
Reid Spencer
991b92eff7 Fix compilation warning.
llvm-svn: 16336
2004-09-14 15:46:13 +00:00
Reid Spencer
be6b365237 Update to reflect stkrc's new optimization capabilities.
llvm-svn: 16327
2004-09-14 02:00:24 +00:00
Reid Spencer
262612560a Support substitution options for the W, M, and f options.
llvm-svn: 16326
2004-09-14 01:59:31 +00:00
Reid Spencer
669b65ce16 Support the -WX, -f -M options as pass throughs
Change force option from -f to -F
Support the -strip option
Make changes to reflect different interface in sys::Program

llvm-svn: 16325
2004-09-14 01:58:45 +00:00
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