Mikhail Glushenkov
ad981bfbcc
Add a way to query the number of input files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28 01:16:42 +00:00
Mikhail Glushenkov
9d7a2dc284
A bit prettier formatting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28 01:15:44 +00:00
Mikhail Glushenkov
f8349ac8b8
Use raw_ostream::indent instead of passing strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82456 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21 15:53:44 +00:00
Mikhail Glushenkov
2d04ec5fe6
Distinguish between 'empty' and empty DAG marker.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 16:22:02 +00:00
Mikhail Glushenkov
684a8b0f10
Add a logical 'not' operator to llvmc's TableGen dialect.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81447 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 16:21:38 +00:00
Chris Lattner
74382b7c69
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
...
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 22:45:37 +00:00
Mikhail Glushenkov
8fe4447a0f
Add an 'init' option property.
...
Makes possible to provide default values for options defined in plugins (same as
cl::init).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 16:08:41 +00:00
Mikhail Glushenkov
cbc360d567
Refactoring.
...
Make isList(), isSwitch() and isParameter() member functions of
OptionDescription.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74904 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 16:08:11 +00:00
Mikhail Glushenkov
b797000820
Comment fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 16:07:36 +00:00
Daniel Dunbar
1a55180238
Replace std::iostreams with raw_ostream in TableGen.
...
- Sorry, I can't help myself.
- No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03 00:10:29 +00:00
Mikhail Glushenkov
7bba2333fb
Better error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 18:21:34 +00:00
Mikhail Glushenkov
d80d8690af
Make llvmc work again.
...
Chris recently broke llvmc with his Makefile changes (r75379). That patch made
the global change .o -> .a, which caused built-in llvmc plugins to stop working
since plugin initialization in llvmc is based on static variables not referenced
from the main executable. This patch implements auto-generated forced references
to the plugin libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74000 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:46:48 +00:00
Mikhail Glushenkov
0cbb59089b
A little bit nicer formatting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73998 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:45:31 +00:00
Mikhail Glushenkov
7c8deb3818
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73997 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:45:07 +00:00
Mikhail Glushenkov
e031e4bcb9
A better error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06 04:54:23 +00:00
Mikhail Glushenkov
e89331b93d
The 'forward_as' property did not use its second argument.
...
See PR4159 for details. Patch by Martin Nowack!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71054 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06 01:41:19 +00:00
Mikhail Glushenkov
f868156820
Fix incorrect code generation with ENV.
...
See PR4157 for details. Patch by Martin Nowack!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70973 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05 12:34:34 +00:00
Mikhail Glushenkov
0941b0f655
Add some assertions.
...
Fixes segfaults in some corner cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69494 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19 00:22:35 +00:00
Mikhail Glushenkov
c52551dfa2
'append_cmd' should split its argument.
...
Makes '(append_cmd "-foo a b c")' work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65623 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27 06:46:55 +00:00
Mikhail Glushenkov
57cd67f693
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63174 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-28 03:47:58 +00:00
Mikhail Glushenkov
19d3e82905
Add three new option properties.
...
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-28 03:47:20 +00:00
Mikhail Glushenkov
b6b514124d
Change the hook API back to prevent memory leaks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62686 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
a298bb7525
Allow hooks with arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 13:04:00 +00:00
Mikhail Glushenkov
65ee1e6ff4
Fix typo in error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61191 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-18 04:06:58 +00:00
Mikhail Glushenkov
5c2b6b26c9
Some enhancements for the 'case' expression.
...
Add (error) and (empty).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61117 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-17 02:47:01 +00:00
Mikhail Glushenkov
e1d44b59ee
Put Edge* classes into anonymous namespace.
...
Prevents conflicts between plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60871 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 10:34:18 +00:00
Mikhail Glushenkov
b4ced5a3c4
Make 'extern' an option property.
...
Makes (forward) work better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60667 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:47:12 +00:00
Mikhail Glushenkov
ad889a7f88
Better error message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60664 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:45:12 +00:00
Mikhail Glushenkov
15b71ba122
Re-apply Cedric's changes.
...
Use B instead of Beg (for consistency), but NodeA and NodeB instead of A
and B.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60663 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:44:47 +00:00
Mikhail Glushenkov
b59dbad710
Try to guess when the auto-generated cl::Sink option should be marked 'extern'.
...
This would be much easier to do if the CommandLine library didn't use
global state. Global state is evil.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:42:47 +00:00
Mikhail Glushenkov
08509493e5
Add a (progn)-like construct for (actions). Implemented as a DAG list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60658 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:42:22 +00:00
Mikhail Glushenkov
f915253dfc
Use (actions) instead of option properties, support external options.
...
Also includes a major refactoring. See documentation for more
information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60656 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:41:11 +00:00
Cedric Venet
8f241b0efb
The use of the construct:
...
for(Type1 B = ...;;) { Type2 B ; ... }
is bad: code is hard to read and VS VS don't like it (it ignore the second declaration of B).
This patch fix the problem in tablegen. Please don't write code like this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60590 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05 13:37:30 +00:00
Mikhail Glushenkov
ad746beb64
Support multiple compilation graph definitions. Not terribly useful, but makes the code more generic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60199 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 00:13:47 +00:00
Mikhail Glushenkov
739c720e66
Add 'hidden' and 'really_hidden' option properties.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60198 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 00:13:25 +00:00
Mikhail Glushenkov
3acc921b26
Small fix: the error message was incorrect in some cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60099 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26 10:55:45 +00:00
Mikhail Glushenkov
35fde15059
Support dependencies between plugins by priority-sorting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59449 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov
fa2707709d
Filter ToolPropertiesList to exclude all Tools not mentioned in the compilation graph.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59448 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 17:29:42 +00:00
Mikhail Glushenkov
010887765a
Add a layer of indirection to make plugins more flexible.
...
Use strings instead of TableGen defs in the compilation graph
definition. Makes it easier for the plugins to modify an existing graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59447 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 17:29:18 +00:00
Mikhail Glushenkov
6766572dcb
Check the return value of std::getenv.
...
When constructing std::strings from C strings, we should check the input
value to be not NULL so that the std::string constructor does not
segfault.
Fixes #3047 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59131 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12 12:41:18 +00:00
Mikhail Glushenkov
262d248833
Add a bit of lazy evaluation to PopulateCompilationGraph().
...
Only the tools that are mentioned in the compilation graph definition
are now inserted by PopulateCompilationGraph(). This should cut down
plugin loading time a little.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59097 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12 00:05:17 +00:00
Mikhail Glushenkov
aa4774caaa
Some cosmetic changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12 00:04:46 +00:00
Mikhail Glushenkov
c389e944cd
Allow $CALL and $ENV in command names. Fixes #3025 .
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58922 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08 19:43:32 +00:00
Anton Korobeynikov
760a5724c6
Properly escape dashes in TableGen's LLVMC2 emitter.
...
Patch by Patrick Walton!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58901 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08 10:16:21 +00:00
Mikhail Glushenkov
4a1a77c1c9
Move llvmc2 header files under include/llvm/CompilerDriver
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56466 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:50:40 +00:00
Mikhail Glushenkov
c82ce4a8a7
Plugin support for llvmc2 (a-la opt).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56465 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:49:34 +00:00
Mikhail Glushenkov
0737651452
Make comments a little bit more clear.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56463 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:48:22 +00:00
Mikhail Glushenkov
11a353a206
Get rid of GlobalLanguageMap. Global state is evil.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56462 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:47:46 +00:00
Mikhail Glushenkov
fdee954623
Add a (forward_as) option property
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56459 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:46:19 +00:00
Mikhail Glushenkov
5ccf28f168
Delete the file llvmc2/doc/LLVMC-Enhancements.rst + some minor language/spelling fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56458 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:45:17 +00:00