summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/OptTable.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [Driver] Refactor clang driver to use LLVM's Option libraryReid Kleckner2013-06-141-388/+0
| | | | | | | | | | | | | | | | | | The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in clang::driver - Fixing the autoconf build by adding option everywhere As discussed in the review, this change includes using directives in header files. I'll make follow up changes to remove those in favor of name specifiers. Reviewers: espindola Differential Revision: http://llvm-reviews.chandlerc.com/D975 llvm-svn: 183989
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-1/+1
| | | | | | | | | | | | | 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
* PR14303: Add a NoDriverOption flag to those options which are not accepted byRichard Smith2012-11-091-6/+4
| | | | | | | the driver (the options defined in CC1Options.td) and exclude their help from "clang --help". llvm-svn: 167638
* [Options] Add prefixes to options.Michael J. Spencer2012-10-221-10/+60
| | | | | | | | | | | | | | 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
* [Options] make Option a value type.Michael J. Spencer2012-10-191-20/+23
| | | | llvm-svn: 166347
* Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.Argyrios Kyrtzidis2012-10-181-15/+19
| | | | | | This seems to have introduced assertion hit when building compiler-rt. llvm-svn: 166245
* [Options] make Option a value type.Michael J. Spencer2012-10-181-19/+15
| | | | llvm-svn: 166223
* Revert "[Options] make Option a value type."Eric Christopher2012-10-101-15/+19
| | | | | | | | | | | | | 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
* [Options] make Option a value type.Michael J. Spencer2012-10-101-19/+15
| | | | llvm-svn: 165663
* Prefer StringRef::startswith to the strncmp/strlen contraption.Benjamin Kramer2012-10-041-1/+2
| | | | | | This may be slightly more efficient and is definitely more readable. llvm-svn: 165217
* Fix invalid reads by memcmp.Benjamin Kramer2012-10-031-1/+1
| | | | | | | Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the end. Found by valgrind. llvm-svn: 165157
* [Options] Store the owning OptTable in Option so it can construct Group and ↵Michael J. Spencer2012-10-031-7/+1
| | | | | | Alias. llvm-svn: 165150
* [Options] Store the option ID in OptTable::Info.Michael J. Spencer2012-09-251-1/+1
| | | | llvm-svn: 164644
* Reduce the amount of state in the Option class by relying on the data from ↵Michael J. Spencer2012-08-211-27/+5
| | | | | | OptTable::Info. llvm-svn: 162299
* Make Option non virtual.Michael J. Spencer2012-08-201-25/+3
| | | | llvm-svn: 162231
* Unify Options.td and CC1Options.td, in a first step towards unifying the ↵James Molloy2012-05-011-0/+2
| | | | | | | | serialization logic in Frontend and Driver. Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/ llvm-svn: 155916
* More missing header inclusions from llvm_unreachable migration.David Blaikie2011-09-231-0/+1
| | | | llvm-svn: 140369
* Switch assert(0/false) llvm_unreachable.David Blaikie2011-09-231-3/+3
| | | | llvm-svn: 140367
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-231-3/+3
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* fix a bunch of comment typos found by codespell. Patch byChris Lattner2011-04-151-2/+2
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129559
* Remove stray emacs mode markers in all these files that was causing emacs toNick Lewycky2010-12-311-1/+1
| | | | | | | open them in fundamental-mode instead of c++-mode. Also twiddle whitespace for consistency in ToolChains.cpp. llvm-svn: 122646
* Declare argv parameters as const char* const* instead of to char** to ↵Axel Naumann2010-10-111-1/+2
| | | | | | clarify that they are not modified, and to allow for string literals as arguments. llvm-svn: 116200
* Driver/OptParser: Add a NoForward flag to prevent forwarding certain options toDaniel Dunbar2010-08-131-0/+2
| | | | | | | | GCC. - Mark -Xclang and -mlinker-version= with it for now, although I am sure there are more. llvm-svn: 111005
* Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy ↵Daniel Dunbar2010-06-161-1/+2
| | | | | | Straszheim! llvm-svn: 106113
* Driver: Change OptTable::ParseArg to take any ArgList.Daniel Dunbar2010-06-111-1/+1
| | | | llvm-svn: 105839
* Driver: Eliminate Arg subclasses, which are now unnecessary.Daniel Dunbar2010-06-091-2/+2
| | | | llvm-svn: 105762
* Driver: Keep the rendering style in the option, instead of as part of the Arg.Daniel Dunbar2010-06-091-2/+2
| | | | llvm-svn: 105761
* Driver: Change Arg to just hold the values directly, instead of implicitlyDaniel Dunbar2010-06-091-2/+2
| | | | | | deriving them from the Arg type. llvm-svn: 105760
* Driver: Allow Render{Separate,Joined} option flags on JoinedOrSeparate ↵Daniel Dunbar2010-03-201-2/+4
| | | | | | | | option types. Also, simplify/fix SeparateArg::render with forced join. llvm-svn: 99022
* OptTable: Allow option groups to be used to define "help groups", which willDaniel Dunbar2009-12-041-20/+61
| | | | | | collate the options inside that group. llvm-svn: 90592
* OptParser: Add HelpHidden flag.Daniel Dunbar2009-12-041-1/+5
| | | | llvm-svn: 90591
* Add OptTable::PrintHelp.Daniel Dunbar2009-12-031-0/+75
| | | | llvm-svn: 90420
* Factor out OptTable::ParseArgs, for parsing an entire argument vector.Daniel Dunbar2009-11-191-0/+35
| | | | llvm-svn: 89327
* Driver: Take option ID for {Input,Unknown}Option, to drop dependency on ↵Daniel Dunbar2009-11-191-5/+4
| | | | | | actual options. llvm-svn: 89312
* Driver: Introduce OptSpecifier class for protecting access to an option id.Daniel Dunbar2009-11-191-0/+4
| | | | llvm-svn: 89310
* Driver: Split OptTable out into OptTable.{h,cpp}Daniel Dunbar2009-11-191-32/+2
| | | | llvm-svn: 89283
* Make MSVC happy.Daniel Dunbar2009-11-181-12/+12
| | | | llvm-svn: 89247
* Driver: Rework OptTable to have no dependency on the options it manages.Daniel Dunbar2009-11-181-99/+67
| | | | llvm-svn: 89234
* Driver: Switch Options.def to storing flags as a bitmask (instead of mangledDaniel Dunbar2009-11-181-25/+37
| | | | | | into a string). llvm-svn: 89212
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-6/+6
| | | | llvm-svn: 81346
* Explicitly initialize the options array, MinGW's gcc 4.3.5 appears to have a bugDaniel Dunbar2009-07-131-1/+5
| | | | | | in array value-initialization. llvm-svn: 75518
* Driver: Add 'q' flag for options which shouldn't be reported as unused.Daniel Dunbar2009-04-071-0/+1
| | | | | | | - <rdar://problem/6756295> warning about '-dynamic' argument unused during compilation seems incorrect llvm-svn: 68535
* Driver: Fix a parsing bug where some options were matchedDaniel Dunbar2009-04-071-8/+15
| | | | | | | | | 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
* Driver: Add OptTable::getOptionKind.Daniel Dunbar2009-03-311-3/+5
| | | | | | Also, removed default value for getOptionMetaVar. llvm-svn: 68146
* Driver: Add extra parameters for help text to option definitions.Daniel Dunbar2009-03-311-4/+18
| | | | | | | | - Currently unused. And yes, now may be about the time I want a TableGen backend. llvm-svn: 68139
* Driver: Replace Option::ForwardToGCC by Option::DriverOption (whichDaniel Dunbar2009-03-251-6/+1
| | | | | | matches the flag in Options.def). llvm-svn: 67679
* Driver: Prep for tool chain specific argument translation.Daniel Dunbar2009-03-251-1/+1
| | | | | | | | | | | | | | | | - 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
* gcc 4.3 finds my use of ^ suspicious.Daniel Dunbar2009-03-251-1/+1
| | | | llvm-svn: 67673
* Driver: Make argument parsing fast.Daniel Dunbar2009-03-231-13/+32
| | | | | | | | | | | 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
* Driver: Fix off by one in computation of first searchable option.Daniel Dunbar2009-03-231-1/+1
| | | | llvm-svn: 67552
OpenPOWER on IntegriCloud