;
35llvm::raw_ostream &Out,
36std::pair<StringRef, StringRef> EntryDescPair,
37 size_tInitialPad,
size_tEntryWidth,
size_tMinLineWidth) {
39llvm::formatted_raw_ostream FOut(Out);
41 const size_tPadForDesc = InitialPad + EntryWidth;
43FOut.PadToColumn(InitialPad) << EntryDescPair.first;
45 if(FOut.getColumn() > PadForDesc)
48FOut.PadToColumn(PadForDesc);
50 if(MinLineWidth == 0) {
51FOut << EntryDescPair.second;
55 for(
char C: EntryDescPair.second) {
56 if(FOut.getColumn() > MinLineWidth &&
C==
' ') {
58FOut.PadToColumn(PadForDesc);
68llvm::StringSwitch<std::optional<ExplorationStrategyKind>>(
73.Case(
"unexplored_first_queue",
75.Case(
"unexplored_first_location_queue",
77.Case(
"bfs_block_dfs_contents",
79.Default(std::nullopt);
80assert(K &&
"User mode is invalid.");
85 autoK = llvm::StringSwitch<std::optional<CTUPhase1InliningKind>>(
86CTUPhase1InliningMode)
90.Default(std::nullopt);
91assert(K &&
"CTU inlining mode is invalid.");
96 autoK = llvm::StringSwitch<std::optional<IPAKind>>(IPAMode)
102.Default(std::nullopt);
103assert(K &&
"IPA Mode is invalid.");
114 autoK = llvm::StringSwitch<std::optional<CXXInlineableMemberKind>>(
115CXXMemberInliningMode)
120.Default(std::nullopt);
122assert(K &&
"Invalid c++ member function inlining mode.");
128StringRef OptionName,
129 boolSearchInParents)
const{
130assert(!CheckerName.empty() &&
131 "Empty checker name! Make sure the checker object (including it's " 132 "bases!) if fully initialized before calling this function!");
134ConfigTable::const_iterator
E=
Config.end();
136ConfigTable::const_iterator I =
137 Config.find((Twine(CheckerName) +
":"+ OptionName).str());
139 returnStringRef(I->getValue());
140 size_tPos = CheckerName.rfind(
'.');
141 if(Pos == StringRef::npos)
144CheckerName = CheckerName.substr(0, Pos);
145}
while(!CheckerName.empty() && SearchInParents);
147llvm_unreachable(
"Unknown checker option! Did you call getChecker*Option " 148 "with incorrect parameters? User input must've been " 149 "verified by CheckerRegistry.");
155StringRef OptionName,
156 boolSearchInParents)
const{
158 C->getTagDescription(), OptionName, SearchInParents);
162StringRef OptionName,
163 boolSearchInParents)
const{
165llvm::StringSwitch<std::optional<bool>>(
167.Case(
"true",
true)
168.Case(
"false",
false)
169.Default(std::nullopt);
172 "This option should be either 'true' or 'false', and should've been " 173 "validated by CheckerRegistry!");
179StringRef OptionName,
180 boolSearchInParents)
const{
182 C->getTagDescription(), OptionName, SearchInParents);
186StringRef OptionName,
187 boolSearchInParents)
const{
191.getAsInteger(0, Ret);
193 "This option should be numeric, and should've been validated by " 194 "CheckerRegistry!");
200StringRef OptionName,
201 boolSearchInParents)
const{
203 C->getTagDescription(), OptionName, SearchInParents);
bool mayInlineCXXMemberFunction(CXXInlineableMemberKind K) const
Returns the option controlling which C++ member functions will be considered for inlining.
ConfigTable Config
A key-value table of use-specified configuration values.
bool getCheckerBooleanOption(StringRef CheckerName, StringRef OptionName, bool SearchInParents=false) const
Interprets an option's string value as a boolean.
IPAKind getIPAMode() const
Returns the inter-procedural analysis mode.
CTUPhase1InliningKind getCTUPhase1Inlining() const
int getCheckerIntegerOption(StringRef CheckerName, StringRef OptionName, bool SearchInParents=false) const
Interprets an option's string value as an integer value.
static void printFormattedEntry(llvm::raw_ostream &Out, std::pair< StringRef, StringRef > EntryDescPair, size_t InitialPad, size_t EntryWidth, size_t MinLineWidth=0)
Convenience function for printing options or checkers and their description in a formatted manner.
ExplorationStrategyKind getExplorationStrategy() const
StringRef getCheckerStringOption(StringRef CheckerName, StringRef OptionName, bool SearchInParents=false) const
Query an option's string value.
The JSON file list parser is used to communicate input to InstallAPI.
IPAKind
Describes the different modes of inter-procedural analysis.
@ IPAK_Inlining
Inline callees(C, C++, ObjC) when their definitions are available.
@ IPAK_BasicInlining
Inline C functions and blocks when their definitions are available.
@ IPAK_None
Perform only intra-procedural analysis.
@ IPAK_DynamicDispatch
Enable inlining of dynamically dispatched methods.
@ IPAK_DynamicDispatchBifurcate
Enable inlining of dynamically dispatched methods, bifurcate paths when exact type info is unavailabl...
CXXInlineableMemberKind
Describes the different kinds of C++ member functions which can be considered for inlining by the ana...
@ CIMK_Destructors
Refers to destructors (implicit or explicit).
@ CIMK_MemberFunctions
Refers to regular member function and operator calls.
@ CIMK_Constructors
Refers to constructors (implicit or explicit).
@ CIMK_None
A dummy mode in which no C++ inlining is enabled.
@ UnexploredFirstLocationQueue
Diagnostic wrappers for TextAPI types for error reporting.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4