Chandler Carruth
3a02247dc9
Sort all of Clang's files under 'lib', and fix up the broken headers
...
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
2012-12-04 09:13:33 +00:00
Richard Smith
e70ed8690f
PR14303: Add a NoDriverOption flag to those options which are not accepted by
...
the driver (the options defined in CC1Options.td) and exclude their help from
"clang --help".
llvm-svn: 167638
2012-11-09 22:36:44 +00:00
Michael J. Spencer
929fccd476
[Options] Add prefixes to options.
...
Each option has a set of prefixes. When matching an argument such as
-funroll-loops. First the leading - is removed as it is a prefix. Then
a lower_bound search for "funroll-loops" is done against the option table by
option name. From there each option prefix + option name combination is tested
against the argument.
This allows us to support Microsoft style options where both / and - are valid
prefixes. It also simplifies the cases we already have where options come in
both - and -- forms. Almost every option for gnu-ld happens to have this form.
llvm-svn: 166444
2012-10-22 22:13:48 +00:00
Michael J. Spencer
fc790901d2
[Options] make Option a value type.
...
llvm-svn: 166347
2012-10-19 22:36:40 +00:00
Argyrios Kyrtzidis
f552d3841b
Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.
...
This seems to have introduced assertion hit when building compiler-rt.
llvm-svn: 166245
2012-10-18 22:42:31 +00:00
Michael J. Spencer
842227a2e2
[Options] make Option a value type.
...
llvm-svn: 166223
2012-10-18 20:33:42 +00:00
Eric Christopher
12de2bdfc5
Revert "[Options] make Option a value type."
...
Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date: Wed Oct 10 21:48:26 2012 +0000
[Options] make Option a value type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8
This reverts commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3.
llvm-svn: 165667
2012-10-10 22:34:46 +00:00
Michael J. Spencer
91599874e9
[Options] make Option a value type.
...
llvm-svn: 165663
2012-10-10 21:48:26 +00:00
Benjamin Kramer
4f23bee060
Prefer StringRef::startswith to the strncmp/strlen contraption.
...
This may be slightly more efficient and is definitely more readable.
llvm-svn: 165217
2012-10-04 10:06:38 +00:00
Benjamin Kramer
bf56beab7e
Fix invalid reads by memcmp.
...
Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
end. Found by valgrind.
llvm-svn: 165157
2012-10-03 20:58:09 +00:00
Michael J. Spencer
bfdde7cb60
[Options] Store the owning OptTable in Option so it can construct Group and Alias.
...
llvm-svn: 165150
2012-10-03 19:58:10 +00:00
Michael J. Spencer
9d1221a281
[Options] Store the option ID in OptTable::Info.
...
llvm-svn: 164644
2012-09-25 23:12:48 +00:00
Michael J. Spencer
d492219e59
Reduce the amount of state in the Option class by relying on the data from OptTable::Info.
...
llvm-svn: 162299
2012-08-21 18:51:17 +00:00
Michael J. Spencer
ad3ccc3cb0
Make Option non virtual.
...
llvm-svn: 162231
2012-08-20 21:41:17 +00:00
James Molloy
a3c85b8629
Unify Options.td and CC1Options.td, in a first step towards unifying the serialization logic in Frontend and Driver.
...
Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/
llvm-svn: 155916
2012-05-01 14:57:16 +00:00
David Blaikie
7900020616
More missing header inclusions from llvm_unreachable migration.
...
llvm-svn: 140369
2011-09-23 05:57:42 +00:00
David Blaikie
83d382b1ca
Switch assert(0/false) llvm_unreachable.
...
llvm-svn: 140367
2011-09-23 05:06:16 +00:00
Chris Lattner
0e62c1cc0b
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
...
them into the clang namespace.
llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Chris Lattner
57540c5be0
fix a bunch of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129559
2011-04-15 05:22:18 +00:00
Nick Lewycky
6da90771c4
Remove stray emacs mode markers in all these files that was causing emacs to
...
open them in fundamental-mode instead of c++-mode.
Also twiddle whitespace for consistency in ToolChains.cpp.
llvm-svn: 122646
2010-12-31 17:31:54 +00:00
Axel Naumann
b151c3c2d6
Declare argv parameters as const char* const* instead of to char** to clarify that they are not modified, and to allow for string literals as arguments.
...
llvm-svn: 116200
2010-10-11 09:18:43 +00:00
Daniel Dunbar
568b7500fe
Driver/OptParser: Add a NoForward flag to prevent forwarding certain options to
...
GCC.
- Mark -Xclang and -mlinker-version= with it for now, although I am sure there
are more.
llvm-svn: 111005
2010-08-13 04:44:20 +00:00
Daniel Dunbar
7c995e8fac
Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy Straszheim!
...
llvm-svn: 106113
2010-06-16 16:59:23 +00:00
Daniel Dunbar
7c9e4306af
Driver: Change OptTable::ParseArg to take any ArgList.
...
llvm-svn: 105839
2010-06-11 22:00:17 +00:00
Daniel Dunbar
35cbfeba8f
Driver: Eliminate Arg subclasses, which are now unnecessary.
...
llvm-svn: 105762
2010-06-09 22:31:08 +00:00
Daniel Dunbar
8b77f73314
Driver: Keep the rendering style in the option, instead of as part of the Arg.
...
llvm-svn: 105761
2010-06-09 22:31:04 +00:00
Daniel Dunbar
8f1ebabaf7
Driver: Change Arg to just hold the values directly, instead of implicitly
...
deriving them from the Arg type.
llvm-svn: 105760
2010-06-09 22:31:00 +00:00
Daniel Dunbar
4ea3aea534
Driver: Allow Render{Separate,Joined} option flags on JoinedOrSeparate option types.
...
Also, simplify/fix SeparateArg::render with forced join.
llvm-svn: 99022
2010-03-20 01:12:00 +00:00
Daniel Dunbar
78e9de56f4
OptTable: Allow option groups to be used to define "help groups", which will
...
collate the options inside that group.
llvm-svn: 90592
2009-12-04 21:08:40 +00:00
Daniel Dunbar
250bd17374
OptParser: Add HelpHidden flag.
...
llvm-svn: 90591
2009-12-04 21:08:25 +00:00
Daniel Dunbar
65b9952c2e
Add OptTable::PrintHelp.
...
llvm-svn: 90420
2009-12-03 07:01:38 +00:00
Daniel Dunbar
52ed5feee5
Factor out OptTable::ParseArgs, for parsing an entire argument vector.
...
llvm-svn: 89327
2009-11-19 06:35:06 +00:00
Daniel Dunbar
b323fd72ab
Driver: Take option ID for {Input,Unknown}Option, to drop dependency on actual options.
...
llvm-svn: 89312
2009-11-19 04:25:06 +00:00
Daniel Dunbar
8c00957008
Driver: Introduce OptSpecifier class for protecting access to an option id.
...
llvm-svn: 89310
2009-11-19 04:14:53 +00:00
Daniel Dunbar
aa767378ac
Driver: Split OptTable out into OptTable.{h,cpp}
...
llvm-svn: 89283
2009-11-19 00:15:11 +00:00
Daniel Dunbar
7147de2c4e
Make MSVC happy.
...
llvm-svn: 89247
2009-11-18 21:42:57 +00:00
Daniel Dunbar
26228a0d7a
Driver: Rework OptTable to have no dependency on the options it manages.
...
llvm-svn: 89234
2009-11-18 20:19:36 +00:00
Daniel Dunbar
21432d38a0
Driver: Switch Options.def to storing flags as a bitmask (instead of mangled
...
into a string).
llvm-svn: 89212
2009-11-18 17:42:34 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Daniel Dunbar
9ab53d2b17
Explicitly initialize the options array, MinGW's gcc 4.3.5 appears to have a bug
...
in array value-initialization.
llvm-svn: 75518
2009-07-13 21:50:47 +00:00
Daniel Dunbar
a3cfbe33da
Driver: Add 'q' flag for options which shouldn't be reported as unused.
...
- <rdar://problem/6756295> warning about '-dynamic' argument unused
during compilation seems incorrect
llvm-svn: 68535
2009-04-07 19:04:18 +00:00
Daniel Dunbar
b2a7c062aa
Driver: Fix a parsing bug where some options were matched
...
incorrectly. I'm blanking on the smartest way to write this search,
but we should just do the right thing when we move to TableGen.
- <rdar://problem/6761194> [driver] -Wextra-tokens isn't parsed
correctly
llvm-svn: 68525
2009-04-07 18:21:47 +00:00
Daniel Dunbar
77684ead4b
Driver: Add OptTable::getOptionKind.
...
Also, removed default value for getOptionMetaVar.
llvm-svn: 68146
2009-03-31 21:26:12 +00:00
Daniel Dunbar
a207254f94
Driver: Add extra parameters for help text to option definitions.
...
- Currently unused.
And yes, now may be about the time I want a TableGen backend.
llvm-svn: 68139
2009-03-31 20:12:05 +00:00
Daniel Dunbar
0e378b1e26
Driver: Replace Option::ForwardToGCC by Option::DriverOption (which
...
matches the flag in Options.def).
llvm-svn: 67679
2009-03-25 06:08:46 +00:00
Daniel Dunbar
dac54a81df
Driver: Prep for tool chain specific argument translation.
...
- Lift ArgList to a base class for InputArgList and DerivedArgList.
- This is not a great decomposition, but it does embed the
translation into the type system, and keep things efficient for
tool chains that don't want to do any translation.
- No intended functionality change.
Eventually I hope to get rid of tool chain specific translation and
have each tool do the right thing, but for now this is the easiest way
to match gcc precisely (which is good for testing).
llvm-svn: 67676
2009-03-25 04:13:45 +00:00
Daniel Dunbar
0e0cf39a9e
gcc 4.3 finds my use of ^ suspicious.
...
llvm-svn: 67673
2009-03-25 03:06:26 +00:00
Daniel Dunbar
95953ce31c
Driver: Make argument parsing fast.
...
On a synthetic command line consisting of almost all defined options,
this drops wall time from .00494 to .00336 and user time from .00258
to .00105.
On the same benchmark, clang-driver is about 15% faster than the
primary gcc driver and almost twice as fast as the gcc driver driver.
llvm-svn: 67564
2009-03-23 21:50:40 +00:00
Daniel Dunbar
ee4d1feb44
Driver: Fix off by one in computation of first searchable option.
...
llvm-svn: 67552
2009-03-23 19:19:19 +00:00
Daniel Dunbar
453d79a2db
Driver: Check that options are ordered properly (outside of
...
Release-Asserts mode).
Also, avoid searching through option groups (which will never match).
llvm-svn: 67548
2009-03-23 18:41:45 +00:00