Go to the documentation of this file.
30 #ifndef OptionPlugin_H
31 #define OptionPlugin_H
33 #include "llvm/Support/CommandLine.h"
34 #include "llvm/ADT/SmallVector.h"
35 #include "llvm/Support/FormatVariadic.h"
36 #include "llvm/Support/raw_ostream.h"
64 key(key), value(value), valid(true) {};
92 pair<string, string>
get() {
93 return make_pair(key, value);
132 explicit operator bool() const noexcept {
140 return !(*
this == rhs);
147 return (key == rhs.
key) && (value == rhs.
value);
224 struct OptionValue<
OptKeyValue> final : OptionValueCopy<OptKeyValue> {
227 OptionValue() =
default;
237 void anchor()
override;
241 template <>
class parser<
OptKeyValue> :
public basic_parser<OptKeyValue> {
249 return O.error(
"'" + Arg +
250 "' value invalid for key-value argument!");
258 void printOptionDiff(
const Option &O,
const OptVal &V,
const OptVal &Default,
size_t GlobalWidth)
const;
261 void anchor()
override;
264 extern template class basic_parser<OptKeyValue>;
270 #endif //OptionPlugin_H
bool operator!=(const OptKeyValue &rhs)
equality comparetor
Definition: OptionPlugin.hpp:139
Definition: OptionPlugin.cpp:128
template specialization of OptionValue for OptKeyValue
Definition: OptionPlugin.hpp:224
cl::opt< string > PathToCGRAConfig
path to model config
cl::opt< bool > OptVerbose
a verbose option
cl::opt< bool > OptUseSimpleDFGName
simplify the file name of DFG
OptionValue(const OptKeyValue &V)
Definition: OptionPlugin.hpp:229
OptionValue< OptKeyValue > & operator=(const OptKeyValue &V)
Definition: OptionPlugin.hpp:231
OptKeyValue()
Default constructor Instances made by this constructor are always invalidated.
Definition: OptionPlugin.hpp:56
parser(Option &O)
Definition: OptionPlugin.hpp:243
pair< string, string > get()
Get both key and value.
Definition: OptionPlugin.hpp:92
cl::opt< bool > OptDFGPlainNodeName
to save human readable DOT
bool operator==(const OptKeyValue &lhs, const OptKeyValue &rhs)
Definition: OptionPlugin.cpp:140
Definition: AGVerifyPass.hpp:50
bool operator!=(const OptKeyValue &lhs, const OptKeyValue &rhs)
Definition: OptionPlugin.cpp:134
cl::opt< int > OptMemoryDependencyDistanceThreshold
threshold count for how close memory dependency is regarded as a data dependency in data flow graph
StringRef getValueName() const override
Definition: OptionPlugin.hpp:256
cl::list< OptKeyValue > OptDFGEdgeProp
to set common preference for edge
cl::opt< bool > OptEnableLoopFlatten
to enable loop-flatten pass for CGRA kernel
cl::opt< string > OptDFGOpKey
key string for opcode in DOT graph
string value
Definition: OptionPlugin.hpp:158
string key
Definition: OptionPlugin.hpp:157
cl::opt< bool > OptLoopInvariantAsConstant
consider loop invariant memory load as constant values for decoupled CGRAs
cl::opt< int > OptDFGFloatPrecWidth
to specify precision width for floating-point number in DOT file
bool operator==(const OptKeyValue &rhs)
inequality comparator
Definition: OptionPlugin.hpp:146
string get_value() const
Get the value.
Definition: OptionPlugin.hpp:110
raw_ostream & operator<<(raw_ostream &OS, const CGRAOmp::OptKeyValue &D)
stream insertion operator for llvm::raw_ostream
cl::list< OptKeyValue > OptDFGNodeProp
to set common preference for node
OptKeyValue(string key, string value)
Construct a new Key-Value object.
Definition: OptionPlugin.hpp:63
cl::list< string > OptDFGPassPlugin
path list to load user DFG pass libraries
cl::list< string > OptDFGPassPipeline
to specify which DFG Pass is applied
bool parse(Option &O, StringRef, StringRef Arg, OptKeyValue &Value)
Definition: OptionPlugin.hpp:246
cl::list< OptKeyValue > OptDFGGraphProp
to set common preference for graph
cl::opt< string > OptDFGFilePrefix
prefix for dot file name
A pair of key and value for command line option.
Definition: OptionPlugin.hpp:50
cl::alias PathToCGRAConfigAlias
alias of config file path
bool valid
Definition: OptionPlugin.hpp:156
OptKeyValue(const char *s)
 converting constructor from char*
Definition: OptionPlugin.hpp:72
string get_key() const
Get the key.
Definition: OptionPlugin.hpp:101