Commit Graph

176 Commits

Author SHA1 Message Date
Reid Spencer
9f257e22e3 Always pass -D_GNU_SOURCE to cc1plus
llvm-svn: 18253
2004-11-25 19:38:51 +00:00
Reid Spencer
587ba84a78 Always pass -D_GNU_SOURCE to cc1
llvm-svn: 18252
2004-11-25 19:38:39 +00:00
Reid Spencer
789e7cabd3 Correct the configuration variable used to find the bin directory.
llvm-svn: 18244
2004-11-25 09:36:28 +00:00
Reid Spencer
7510d6e10b Make sure additional C++ suffixes are recognized by llvmc.
llvm-svn: 18191
2004-11-24 00:01:57 +00:00
Reid Spencer
8ea9ac89f6 * Adjust the options to make them either accept multiple occurrences or be
optional so that compatibility with GCC is accomplished.
* Implement the -print-file-name option in an attempt to provide the same
  functionality as GCC. Unfortunately, without loading the cpp or c config
  files, this option won't help much.

llvm-svn: 18189
2004-11-23 23:47:58 +00:00
Reid Spencer
1e676dac08 * Don't pass empty arguments to ExecuteAndWait because it can cause the
sub-tool to start reading its standard input instead of the specified
  input.
* Clean up ouput of path names on error.
* Extend GetPathForLinkageItem to always search the LibraryPaths and thus
  make it suitable for an interface function (required by llvmc.cpp).
* Implement support for language-specific default library paths.

llvm-svn: 18188
2004-11-23 23:45:49 +00:00
Reid Spencer
9d89692355 Configuration data now supports a vector of library paths.
Add the GetPathForLinkageItem method to the interface so full paths can
be generated for a given linkage item.

llvm-svn: 18187
2004-11-23 23:40:06 +00:00
Reid Spencer
7e57629324 Add the c and cpp configuration files.
llvm-svn: 18186
2004-11-23 23:38:46 +00:00
Reid Spencer
5ed5fa8c85 Removed in favor of configurable (*.in) versions.
llvm-svn: 18185
2004-11-23 23:38:07 +00:00
Reid Spencer
c3c816df81 Make various adjustments to parsing so that the separator character doesn't
terminate options or paths, so that SPACE tokens legally separate options
on a command line, and so that the lang.libs paths are parsed properly.

llvm-svn: 18184
2004-11-23 23:37:26 +00:00
Reid Spencer
d4750c9fdf SPACE is a legitimate token now, to separate option words.
llvm-svn: 18183
2004-11-23 23:35:50 +00:00
Reid Spencer
9fa650658b Handle space, separators, bad substitutions, and library search path better
than before.

llvm-svn: 18182
2004-11-23 23:35:16 +00:00
Reid Spencer
b49b10043b Configurable language configuration files.
llvm-svn: 18181
2004-11-23 23:33:08 +00:00
Reid Spencer
b4f1b1d3cb Get the -o option right
llvm-svn: 18052
2004-11-20 20:45:33 +00:00
Reid Spencer
4544b56ca2 Get the -o option right
llvm-svn: 18051
2004-11-20 20:39:33 +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
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
2534c3ff2c Update for library name change.
llvm-svn: 17287
2004-10-28 00:11:43 +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
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
e6418ec30f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer
817a069ea4 Initial version of automake Makefile.am file.
llvm-svn: 16894
2004-10-10 22:36:40 +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
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
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
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
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
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