Commit Graph

319 Commits

Author SHA1 Message Date
Reid Spencer 6ba87bbfd3 Make the sys::Path::GetTemporaryDirectory method not throw exceptions and
adjust users of it to compensate.

llvm-svn: 29831
2006-08-22 19:01:30 +00:00
Reid Spencer 944645af44 For PR797:
Adjust usage of the ExecuteAndWait function to use the last argument which
is the ErrMsg string. This is necessitated because this function no longer
throws exceptions on error.

llvm-svn: 29791
2006-08-21 06:04:45 +00:00
Reid Spencer 4e41aaf805 Patches to correct several bugs in llvmc.
Patches contributed by Bram Adams. Thanks Bram.

llvm-svn: 29729
2006-08-16 20:31:44 +00:00
Chris Lattner ec905190bf No need to check isWriteable here (which isn't sufficient anyway). Just attempt
to do the operation and if it fails, oh well.

llvm-svn: 29446
2006-08-01 18:12:29 +00:00
Chris Lattner 05a8970245 Tools require EH for their top-level try blocks.
llvm-svn: 29035
2006-07-07 00:46:19 +00:00
Chris Lattner 41c173c68a Remove unneeded libs
llvm-svn: 28900
2006-06-21 17:26:13 +00:00
Reid Spencer c95970be9d For PR811:
Don't both with the "C" and "cc" extensions as they aren't common and they
the "C" extension conflicts with the "c" extension on operating systems
that have case insensitive file names.

llvm-svn: 28899
2006-06-21 17:21:39 +00:00
Reid Spencer a647c7ff42 Use archive libraries instead of object files for VMCore, BCReader,
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.

llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Chris Lattner dc0b3afcdd silly cleanup
llvm-svn: 28543
2006-05-29 18:52:05 +00:00
Chris Lattner aa2372562e Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov!  This is a step towards closing PR786.

llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Reid Spencer 097122a246 Distribute CVS versions of lex files
llvm-svn: 27629
2006-04-12 20:56:12 +00:00
Reid Spencer 13f65f29e0 Ignore the lexer output.
llvm-svn: 27034
2006-03-24 02:22:22 +00:00
Chris Lattner e01ff337ee Adjust to new style "generated files in CVS" mechanism for lex output
llvm-svn: 26163
2006-02-14 05:16:35 +00:00
Reid Spencer dfb3fb4a25 Implement PR614:
These changes modify the makefiles so that the output of flex and bison are
placed in the SRC directory, not the OBJ directory. It is intended that they
be checked in as any other LLVM source so that platforms without convenient
access to flex/bison can be compiled. From now on, if you change a .y or
.l file you *must* also commit the generated .cpp and .h files.

llvm-svn: 23115
2005-08-27 18:50:39 +00:00
Jeff Cohen 5f4ef3c5a8 Eliminate all remaining tabs and trailing spaces.
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Reid Spencer af48d8643d Final Changes For PR495:
This chagne just renames some sys::Path methods to ensure they are not
misused. The Path documentation now divides methods into two dimensions:
Path/Disk and accessor/mutator. Path accessors and mutators only operate
on the Path object itself without making any disk accesses. Disk accessors
and mutators will also access or modify the file system. Because of the
potentially destructive nature of disk mutators, it was decided that all
such methods should end in the work "Disk" to ensure the user recognizes
that the change will occur on the file system. This patch makes that
change. The method name changes are:

makeReadable        -> makeReadableOnDisk
makeWriteable       -> makeWriteableOnDisk
makeExecutable      -> makeExecutableOnDisk
setStatusInfo       -> setStatusInfoOnDisk
createDirectory     -> createDirectoryOnDisk
createFile          -> createFileOnDisk
createTemporaryFile -> createTemporaryFileOnDisk
destroy             -> eraseFromDisk
rename              -> renamePathOnDisk

These changes pass the Linux Deja Gnu tests.

llvm-svn: 22354
2005-07-08 03:08:58 +00:00
Reid Spencer c9c0473fa5 For PR495:
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:

appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set

Changes pass Dejagnu and llvm-test/SingleSource tests.

llvm-svn: 22349
2005-07-07 23:21:43 +00:00
Reid Spencer 5b891e9847 For PR495:
Change interface to Path class:
readable -> canRead
writable -> canWrite
executable -> canExecute

More (incremental) changes coming to close 495.

llvm-svn: 22345
2005-07-07 18:21:42 +00:00
Reid Spencer e4925ca229 For PR514:
* Make sure the "etcdir" gets checked for configuration files so that
  the installed location for config files is checked.
* Remove the st.in file (moved to projects/Stacker/tools/stkrc)

llvm-svn: 22135
2005-05-19 01:06:46 +00:00
Reid Spencer e9bee08f1d For PR514:
* language specification files are no longer configured with "configure"
* add substitutions for %bindir%, %libdir%, and various llvmgcc related
  variables needed in the c and cpp spec files.
* Implement the stubstituions in the Compiler Driver.
* Move st.in to projects/Stacker/tools/stkrc where it belongs.

llvm-svn: 22128
2005-05-19 00:52:28 +00:00
Misha Brukman 3f670d29dc * Use consistent spacing for function arguments
* Output single-character strings as chars

llvm-svn: 21705
2005-05-05 22:38:21 +00:00
Misha Brukman 23e9f163ad Minor clean-ups
llvm-svn: 21678
2005-05-03 20:30:34 +00:00
Misha Brukman d317d937b2 Clean up and correct llvmc configurations for C and C++
llvm-svn: 21667
2005-05-03 06:13:18 +00:00
Misha Brukman 18aa1d6438 std::string(NULL) does not a proper constructor make
llvm-svn: 21666
2005-05-03 06:10:51 +00:00
Misha Brukman cc42755633 Omit periods at the end of command-line switch explanations for consistency
llvm-svn: 21664
2005-05-03 05:36:14 +00:00
Misha Brukman 650ba8eb56 Remove trailing whitespace
llvm-svn: 21428
2005-04-22 00:00:37 +00:00
Misha Brukman ee6770f1a3 #include system headers after all LLVM headers
llvm-svn: 21374
2005-04-20 04:51:29 +00:00
Reid Spencer 7a763bfbc5 Ensure that the arguments passed to sys::Program::ExecuteAndWait include
the program name as the first argument. Thanks go to Markus Oberhumer for
noticing this problem.

llvm-svn: 21220
2005-04-11 05:48:04 +00:00
Reid Spencer e447fce542 Use DataInstall macro instead of INSTALL.
llvm-svn: 20322
2005-02-24 21:43:43 +00:00
Reid Spencer 63eb0aa52a Adjust the help output so that it will fit cleanly within 80 columns.
llvm-svn: 20239
2005-02-18 20:00:05 +00:00
Chris Lattner 9db0eccc42 Conform to the documented interface by null terminating argument lists!
llvm-svn: 20167
2005-02-13 23:10:45 +00:00
Reid Spencer 642de64ef9 sysconfdir -> PROJ_etcdir
llvm-svn: 19623
2005-01-17 00:42:31 +00:00
Reid Spencer 0e48bf8a19 Rename BUILD_* to PROJ_*
llvm-svn: 19592
2005-01-16 02:21:29 +00:00
Reid Spencer 996ec72d48 For PR351:
* Place a try/catch block around the entire tool to Make sure std::string
  exceptions are caught and printed before exiting the tool.
* Make sure we catch unhandled exceptions at the top level so that we don't
  abort with a useless message but indicate than an unhandled exception was
  generated.

llvm-svn: 19192
2004-12-30 05:36:08 +00:00
Brian Gaeke fe4e48e14b Use Config/alloca.h instead of alloca.h - pointed out by Duraid and Misha
llvm-svn: 19059
2004-12-20 04:02:01 +00:00
Brian Gaeke cb1b1e74eb Make this compile on Solaris.
llvm-svn: 19047
2004-12-19 21:08:07 +00:00
Reid Spencer 766ad0b77f For PR351:
* Support changes in sys::Program::ExecuteAndWait interface

llvm-svn: 19044
2004-12-19 18:00:56 +00:00
Reid Spencer 86960adfa3 Change LLVMGCCDIR/bytecode-libs -> LLVMGCCDIR/lib
llvm-svn: 18951
2004-12-15 01:54:37 +00:00
Reid Spencer ff17d0439d Make use of the new Path inserter function.
llvm-svn: 18887
2004-12-13 08:53:36 +00:00
Reid Spencer 17e7444a61 PR351: \
Use sys::Path not FileUtilities to check file types

llvm-svn: 18865
2004-12-13 03:01:26 +00:00
Reid Spencer 5ccfd5a48b Path::get -> Path::toString
llvm-svn: 18785
2004-12-11 00:14:15 +00:00
Reid Spencer 2da81ceb3d Get rid of warning from flex.
llvm-svn: 18779
2004-12-10 21:59:47 +00:00
Reid Spencer d3f2e95e6c Add LLVMbzip2 library, now required.
llvm-svn: 18255
2004-11-25 20:22:06 +00:00
Reid Spencer cf5ca279ec Always pass -D_GNU_SOURCE to cc1plus
llvm-svn: 18253
2004-11-25 19:38:51 +00:00
Reid Spencer d7390bbd27 Always pass -D_GNU_SOURCE to cc1
llvm-svn: 18252
2004-11-25 19:38:39 +00:00
Reid Spencer 953e80db76 Correct the configuration variable used to find the bin directory.
llvm-svn: 18244
2004-11-25 09:36:28 +00:00
Reid Spencer 67386ceacc Make sure additional C++ suffixes are recognized by llvmc.
llvm-svn: 18191
2004-11-24 00:01:57 +00:00
Reid Spencer cfa51ff82b * 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 cd893a9c50 * 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 5e1e6b9f82 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 fe6dd9da55 Add the c and cpp configuration files.
llvm-svn: 18186
2004-11-23 23:38:46 +00:00
Reid Spencer e1ae9d7c00 Removed in favor of configurable (*.in) versions.
llvm-svn: 18185
2004-11-23 23:38:07 +00:00
Reid Spencer d51dfe3946 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 513587fbe6 SPACE is a legitimate token now, to separate option words.
llvm-svn: 18183
2004-11-23 23:35:50 +00:00
Reid Spencer 6a0d9b99df 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 c14e53efb8 Configurable language configuration files.
llvm-svn: 18181
2004-11-23 23:33:08 +00:00
Reid Spencer 66c2d807a3 Get the -o option right
llvm-svn: 18052
2004-11-20 20:45:33 +00:00
Reid Spencer 835060938c Get the -o option right
llvm-svn: 18051
2004-11-20 20:39:33 +00:00
Reid Spencer 0c6a283b2a Stop propagating method names that violate the coding standard
llvm-svn: 17498
2004-11-05 22:15:36 +00:00
Reid Spencer f828c812bd 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 aec50b98e0 Implement linking.
llvm-svn: 17297
2004-10-28 04:05:06 +00:00
Reid Spencer 04b92192ec Eliminate the force flag, configuration item, and related support
llvm-svn: 17296
2004-10-28 04:04:38 +00:00
Reid Spencer ffe5f97f17 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 1002e454cb 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 34bb03c61b Update for library name change.
llvm-svn: 17287
2004-10-28 00:11:43 +00:00
Reid Spencer aa4887b482 Add EXTRA_DIST for additional files to be distributed.
llvm-svn: 17233
2004-10-26 03:12:11 +00:00
Chris Lattner 3fe79addf7 Remove template args that are the same as the default
llvm-svn: 17223
2004-10-25 19:09:41 +00:00
Reid Spencer 5fd95ce095 We're not doing automake any more
llvm-svn: 17168
2004-10-22 21:02:23 +00:00
Reid Spencer c1c320c335 We won't use automake
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer 6a11a75f31 Initial automake generated Makefile template
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Reid Spencer ace94df71f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer f6d9ceebc6 Initial version of automake Makefile.am file.
llvm-svn: 16894
2004-10-10 22:36:40 +00:00
Reid Spencer b8dcf1cb7c Update to reflect stkrc's new optimization capabilities.
llvm-svn: 16327
2004-09-14 02:00:24 +00:00
Reid Spencer 86343e43dc Support substitution options for the W, M, and f options.
llvm-svn: 16326
2004-09-14 01:59:31 +00:00
Reid Spencer 4de872f623 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 f68090d67f Don't re-instantiate the std::string in catch block.
llvm-svn: 16159
2004-09-03 22:59:32 +00:00
Reid Spencer 7c16caa336 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 a50cb6c8b9 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 47fc279160 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 a681845e69 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 1b389f09b4 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 9f64b91e27 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 a62e5a837f Add a missing header file
llvm-svn: 16099
2004-08-29 20:02:28 +00:00
Reid Spencer 1b5b24f9fb 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 6275eee949 License file for llvmc.
llvm-svn: 16045
2004-08-25 00:41:06 +00:00
Reid Spencer 44bc15064c 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 7a0348b163 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 3aac4f7d88 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 8d86dd6453 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 b26202f10c Adjustments for changes in the configuration language.
llvm-svn: 16026
2004-08-24 14:24:14 +00:00
Reid Spencer a86672b929 - 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 5b902eba71 Link with bcreader and vmcore.
llvm-svn: 16024
2004-08-24 14:04:07 +00:00
Reid Spencer a1049043d7 - 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 ed9b3c4c20 - 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 20db3234bc - 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 f62f89b3eb - 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 6ad2030f7a Remove unneeded flags.
llvm-svn: 16019
2004-08-24 13:49:57 +00:00
Reid Spencer f222ee6546 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 3820372162 Add the VERSION token.
llvm-svn: 15994
2004-08-22 18:02:41 +00:00
Reid Spencer a318822db2 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 ed09afc536 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 7f9971f349 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 a17a413cc1 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 6ad57b2491 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 fab530daf2 Implement Assembly support.
Consolidate platform-specific code into "sys" namespace.

llvm-svn: 15947
2004-08-20 09:14:05 +00:00
Reid Spencer 9251cb2ecd Actually let it compile after file name changes.
llvm-svn: 15931
2004-08-19 21:52:49 +00:00
Reid Spencer b32e350931 Moved ConfigData -> Configuration
llvm-svn: 15927
2004-08-19 21:17:53 +00:00
Reid Spencer dc20389b5c 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 263bbbd2df Back out dependencies on lib/System/Path.h
llvm-svn: 15815
2004-08-16 07:06:38 +00:00
Reid Spencer efd6e266fa Fix definitions to match tool's actual capabilities.
llvm-svn: 15814
2004-08-16 07:06:13 +00:00
Reid Spencer f58e8d3d0c 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 82737a1e8b 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 9d68ff6ef0 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 e37345e78f Fix header commentary.
llvm-svn: 15729
2004-08-13 20:25:54 +00:00
Reid Spencer cf7c2fe153 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 fdda7ace31 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 5532159340 Move CompilerDriver.h here.
llvm-svn: 15609
2004-08-10 16:29:18 +00:00
Reid Spencer e70c43de89 Initial makefile for the LLVM Compiler Driver.
llvm-svn: 15608
2004-08-10 16:27:08 +00:00
Reid Spencer 89ff1de384 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