LLVM
8.0.1
|
ArgList - Ordered collection of driver arguments. More...
#include "llvm/Option/ArgList.h"
Public Types | |
using | arglist_type = SmallVector< Arg *, 16 > |
using | iterator = arg_iterator< arglist_type::iterator > |
using | const_iterator = arg_iterator< arglist_type::const_iterator > |
using | reverse_iterator = arg_iterator< arglist_type::reverse_iterator > |
using | const_reverse_iterator = arg_iterator< arglist_type::const_reverse_iterator > |
template<unsigned N> | |
using | filtered_iterator = arg_iterator< arglist_type::const_iterator, N > |
template<unsigned N> | |
using | filtered_reverse_iterator = arg_iterator< arglist_type::const_reverse_iterator, N > |
Public Member Functions | |
Arg Access | |
void | append (Arg *A) |
append - Append A to the arg list. More... | |
const arglist_type & | getArgs () const |
unsigned | size () const |
template<typename ... OptSpecifiers> | |
bool | hasArgNoClaim (OptSpecifiers ...Ids) const |
hasArg - Does the arg list contain any option matching Id . More... | |
template<typename ... OptSpecifiers> | |
bool | hasArg (OptSpecifiers ...Ids) const |
template<typename ... OptSpecifiers> | |
Arg * | getLastArg (OptSpecifiers ...Ids) const |
Return the last argument matching Id , or null. More... | |
template<typename ... OptSpecifiers> | |
Arg * | getLastArgNoClaim (OptSpecifiers ...Ids) const |
Return the last argument matching Id , or null. More... | |
virtual const char * | getArgString (unsigned Index) const =0 |
getArgString - Return the input argument string at Index . More... | |
virtual unsigned | getNumInputArgStrings () const =0 |
getNumInputArgStrings - Return the number of original argument strings, which are guaranteed to be the first strings in the argument string list. More... | |
Arg Iteration | |
iterator | begin () |
iterator | end () |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_iterator | begin () const |
const_iterator | end () const |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
template<typename ... OptSpecifiers> | |
iterator_range< filtered_iterator< sizeof...(OptSpecifiers)> > | filtered (OptSpecifiers ...Ids) const |
template<typename ... OptSpecifiers> | |
iterator_range< filtered_reverse_iterator< sizeof...(OptSpecifiers)> > | filtered_reverse (OptSpecifiers ...Ids) const |
Arg Removal | |
void | eraseArg (OptSpecifier Id) |
eraseArg - Remove any option matching Id . More... | |
Argument Lookup Utilities | |
StringRef | getLastArgValue (OptSpecifier Id, StringRef Default="") const |
getLastArgValue - Return the value of the last argument, or a default. More... | |
std::vector< std::string > | getAllArgValues (OptSpecifier Id) const |
getAllArgValues - Get the values of all instances of the given argument as strings. More... | |
Translation Utilities | |
bool | hasFlag (OptSpecifier Pos, OptSpecifier Neg, bool Default=true) const |
hasFlag - Given an option Pos and its negative form Neg , return true if the option is present, false if the negation is present, and Default if neither option is given. More... | |
bool | hasFlag (OptSpecifier Pos, OptSpecifier PosAlias, OptSpecifier Neg, bool Default=true) const |
hasFlag - Given an option Pos , an alias PosAlias and its negative form Neg , return true if the option or its alias is present, false if the negation is present, and Default if none of the options are given. More... | |
void | AddLastArg (ArgStringList &Output, OptSpecifier Id0) const |
AddLastArg - Render only the last argument match Id0 , if present. More... | |
void | AddLastArg (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1) const |
void | AddAllArgsExcept (ArgStringList &Output, ArrayRef< OptSpecifier > Ids, ArrayRef< OptSpecifier > ExcludeIds) const |
AddAllArgsExcept - Render all arguments matching any of the given ids and not matching any of the excluded ids. More... | |
void | AddAllArgs (ArgStringList &Output, ArrayRef< OptSpecifier > Ids) const |
AddAllArgs - Render all arguments matching any of the given ids. More... | |
void | AddAllArgs (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const |
AddAllArgs - Render all arguments matching the given ids. More... | |
void | AddAllArgValues (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const |
AddAllArgValues - Render the argument values of all arguments matching the given ids. More... | |
void | AddAllArgsTranslated (ArgStringList &Output, OptSpecifier Id0, const char *Translation, bool Joined=false) const |
AddAllArgsTranslated - Render all the arguments matching the given ids, but forced to separate args and using the provided name instead of the first option value. More... | |
void | ClaimAllArgs (OptSpecifier Id0) const |
ClaimAllArgs - Claim all arguments which match the given option id. More... | |
void | ClaimAllArgs () const |
ClaimAllArgs - Claim all arguments. More... | |
Arg Synthesis | |
virtual const char * | MakeArgStringRef (StringRef Str) const =0 |
Construct a constant string pointer whose lifetime will match that of the ArgList. More... | |
const char * | MakeArgString (const Twine &Str) const |
const char * | GetOrMakeJoinedArgString (unsigned Index, StringRef LHS, StringRef RHS) const |
Create an arg string for (LHS + RHS ), reusing the string at Index if possible. More... | |
void | print (raw_ostream &O) const |
void | dump () const |
Protected Member Functions | |
ArgList ()=default | |
ArgList (ArgList &&RHS) | |
ArgList & | operator= (ArgList &&RHS) |
~ArgList ()=default | |
Static Protected Member Functions | |
static OptSpecifier | toOptSpecifier (OptSpecifier S) |
ArgList - Ordered collection of driver arguments.
The ArgList class manages a list of Arg instances as well as auxiliary data and convenience methods to allow Tools to quickly check for the presence of Arg instances for a particular Option and to iterate over groups of arguments.
using llvm::opt::ArgList::arglist_type = SmallVector<Arg *, 16> |
using llvm::opt::ArgList::filtered_iterator = arg_iterator<arglist_type::const_iterator, N> |
using llvm::opt::ArgList::filtered_reverse_iterator = arg_iterator<arglist_type::const_reverse_iterator, N> |
|
protecteddefault |
|
inlineprotected |
Definition at line 156 of file ArgList.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().
|
protecteddefault |
void ArgList::AddAllArgs | ( | ArgStringList & | Output, |
ArrayRef< OptSpecifier > | Ids | ||
) | const |
AddAllArgs - Render all arguments matching any of the given ids.
This is a nicer interface when you don't have a list of Ids to exclude.
Definition at line 138 of file ArgList.cpp.
References AddAllArgsExcept(), and llvm::None.
void ArgList::AddAllArgs | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
OptSpecifier | Id1 = 0U , |
||
OptSpecifier | Id2 = 0U |
||
) | const |
AddAllArgs - Render all arguments matching the given ids.
This 3-opt variant of AddAllArgs could be eliminated in favor of one that accepts a single specifier, given the above which accepts any number.
Definition at line 146 of file ArgList.cpp.
References llvm::opt::Arg::claim(), filtered(), and llvm::opt::Arg::render().
void ArgList::AddAllArgsExcept | ( | ArgStringList & | Output, |
ArrayRef< OptSpecifier > | Ids, | ||
ArrayRef< OptSpecifier > | ExcludeIds | ||
) | const |
AddAllArgsExcept - Render all arguments matching any of the given ids and not matching any of the excluded ids.
Definition at line 114 of file ArgList.cpp.
References llvm::opt::Arg::claim(), llvm::opt::Arg::getOption(), llvm::opt::Option::matches(), and llvm::opt::Arg::render().
Referenced by AddAllArgs().
void ArgList::AddAllArgsTranslated | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
const char * | Translation, | ||
bool | Joined = false |
||
) | const |
AddAllArgsTranslated - Render all the arguments matching the given ids, but forced to separate args and using the provided name instead of the first option value.
Joined | - If true, render the argument as joined with the option specifier. |
Definition at line 163 of file ArgList.cpp.
References llvm::opt::Arg::claim(), filtered(), llvm::opt::Arg::getValue(), MakeArgString(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
void ArgList::AddAllArgValues | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
OptSpecifier | Id1 = 0U , |
||
OptSpecifier | Id2 = 0U |
||
) | const |
AddAllArgValues - Render the argument values of all arguments matching the given ids.
Definition at line 154 of file ArgList.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::opt::Arg::claim(), filtered(), and llvm::opt::Arg::getValues().
Referenced by getAllArgValues().
void ArgList::AddLastArg | ( | ArgStringList & | Output, |
OptSpecifier | Id0 | ||
) | const |
AddLastArg - Render only the last argument match Id0
, if present.
Definition at line 99 of file ArgList.cpp.
References getLastArg().
void ArgList::AddLastArg | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
OptSpecifier | Id1 | ||
) | const |
Definition at line 106 of file ArgList.cpp.
References getLastArg().
void ArgList::append | ( | Arg * | A | ) |
append - Append A
to the arg list.
Definition at line 34 of file ArgList.cpp.
References llvm::opt::Arg::getOption(), llvm::opt::Option::getUnaliasedOption(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::RISCVFenceField::O, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase::size().
|
inline |
Definition at line 192 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
|
inline |
Definition at line 198 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
void ArgList::ClaimAllArgs | ( | OptSpecifier | Id0 | ) | const |
ClaimAllArgs - Claim all arguments which match the given option id.
Definition at line 179 of file ArgList.cpp.
References llvm::opt::Arg::claim(), and filtered().
void ArgList::ClaimAllArgs | ( | ) | const |
ClaimAllArgs - Claim all arguments.
Definition at line 184 of file ArgList.cpp.
References llvm::opt::Arg::claim(), and llvm::opt::Arg::isClaimed().
LLVM_DUMP_METHOD void ArgList::dump | ( | ) | const |
Definition at line 209 of file ArgList.cpp.
References llvm::dbgs(), and print().
|
inline |
Definition at line 193 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
|
inline |
Definition at line 199 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
void ArgList::eraseArg | ( | OptSpecifier | Id | ) |
eraseArg - Remove any option matching Id
.
Definition at line 47 of file ArgList.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), filtered(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::opt::OptSpecifier::getID(), I, and llvm::max().
|
inline |
Definition at line 206 of file ArgList.h.
References B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), E, and llvm::make_range().
Referenced by AddAllArgs(), AddAllArgsTranslated(), AddAllArgValues(), ClaimAllArgs(), llvm::dlltoolDriverMain(), eraseArg(), and getSearchPaths().
|
inline |
Definition at line 217 of file ArgList.h.
References B, E, llvm::make_range(), and llvm::SmallVectorTemplateCommon< T, typename >::rend().
std::vector< std::string > ArgList::getAllArgValues | ( | OptSpecifier | Id | ) | const |
getAllArgValues - Get the values of all instances of the given argument as strings.
Definition at line 93 of file ArgList.cpp.
References AddAllArgValues(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
|
inline |
Definition at line 184 of file ArgList.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args.
getArgString - Return the input argument string at Index
.
Implemented in llvm::opt::DerivedArgList, and llvm::opt::InputArgList.
Referenced by llvm::opt::Option::accept(), GetOrMakeJoinedArgString(), and llvm::opt::OptTable::ParseOneArg().
|
inline |
Return the last argument matching Id
, or null.
Definition at line 251 of file ArgList.h.
References llvm::opt::Arg::claim().
Referenced by AddLastArg(), llvm::dlltoolDriverMain(), getLastArgValue(), getOutputPath(), and hasFlag().
|
inline |
StringRef ArgList::getLastArgValue | ( | OptSpecifier | Id, |
StringRef | Default = "" |
||
) | const |
getLastArgValue - Return the value of the last argument, or a default.
Definition at line 87 of file ArgList.cpp.
References getLastArg().
Referenced by llvm::dlltoolDriverMain().
|
pure virtual |
getNumInputArgStrings - Return the number of original argument strings, which are guaranteed to be the first strings in the argument string list.
Implemented in llvm::opt::DerivedArgList, and llvm::opt::InputArgList.
Referenced by llvm::opt::Option::accept().
const char * ArgList::GetOrMakeJoinedArgString | ( | unsigned | Index, |
StringRef | LHS, | ||
StringRef | RHS | ||
) | const |
Create an arg string for (LHS
+ RHS
), reusing the string at Index
if possible.
Definition at line 190 of file ArgList.cpp.
References llvm::StringRef::data(), llvm::StringRef::endswith(), getArgString(), MakeArgString(), llvm::StringRef::size(), and llvm::StringRef::startswith().
Referenced by llvm::opt::Arg::render().
|
inline |
Definition at line 245 of file ArgList.h.
Referenced by llvm::dlltoolDriverMain().
|
inline |
hasArg - Does the arg list contain any option matching Id
.
Claim
Whether the argument should be claimed, if it exists.
Definition at line 241 of file ArgList.h.
Referenced by llvm::dlltoolDriverMain().
bool ArgList::hasFlag | ( | OptSpecifier | Pos, |
OptSpecifier | Neg, | ||
bool | Default = true |
||
) | const |
hasFlag - Given an option Pos
and its negative form Neg
, return true if the option is present, false if the negation is present, and Default
if neither option is given.
If both the option and its negation are present, the last one wins.
Definition at line 74 of file ArgList.cpp.
References getLastArg().
bool ArgList::hasFlag | ( | OptSpecifier | Pos, |
OptSpecifier | PosAlias, | ||
OptSpecifier | Neg, | ||
bool | Default = true |
||
) | const |
hasFlag - Given an option Pos
, an alias PosAlias
and its negative form Neg
, return true if the option or its alias is present, false if the negation is present, and Default
if none of the options are given.
If multiple options are present, the last one wins.
Definition at line 80 of file ArgList.cpp.
References getLastArg().
Definition at line 351 of file ArgList.h.
References llvm::dump(), llvm::RISCVFenceField::O, print(), and llvm::Twine::toStringRef().
Referenced by llvm::opt::Option::accept(), AddAllArgsTranslated(), llvm::opt::DerivedArgList::getBaseArgs(), llvm::opt::InputArgList::getNumInputArgStrings(), GetOrMakeJoinedArgString(), llvm::opt::DerivedArgList::MakeArgStringRef(), llvm::opt::DerivedArgList::MakeFlagArg(), llvm::opt::DerivedArgList::MakeJoinedArg(), llvm::opt::DerivedArgList::MakePositionalArg(), llvm::opt::DerivedArgList::MakeSeparateArg(), and llvm::opt::Arg::render().
Construct a constant string pointer whose lifetime will match that of the ArgList.
Implemented in llvm::opt::DerivedArgList, and llvm::opt::InputArgList.
Definition at line 162 of file ArgList.h.
Referenced by llvm::opt::InputArgList::operator=().
void ArgList::print | ( | raw_ostream & | O | ) | const |
Definition at line 201 of file ArgList.cpp.
References llvm::opt::Arg::print().
Referenced by dump().
|
inline |
Definition at line 195 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::rbegin(), and llvm::SmallVectorTemplateCommon< T, typename >::rend().
|
inline |
Definition at line 201 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::rbegin(), and llvm::SmallVectorTemplateCommon< T, typename >::rend().
|
inline |
Definition at line 196 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::rend().
|
inline |
Definition at line 202 of file ArgList.h.
References llvm::SmallVectorTemplateCommon< T, typename >::rend().
|
inline |
Definition at line 186 of file ArgList.h.
References llvm::SmallVectorBase::size().
|
inlinestaticprotected |
Definition at line 175 of file ArgList.h.
References llvm::sys::path::append().