23 ClassToPassName.try_emplace(ClassName,
PassName.str());
28 if (!ClassToPassNameCallbacks.empty()) {
29 for (
auto &Fn : ClassToPassNameCallbacks)
31 ClassToPassNameCallbacks.clear();
33 auto PassNameIter = ClassToPassName.
find(ClassName);
34 if (PassNameIter != ClassToPassName.end())
35 return PassNameIter->second;
42 const std::vector<StringRef> &Specials) {
43 size_t Pos = PassID.
find(
'<');
46 Prefix = PassID.
substr(0, Pos);
48 [Prefix](
StringRef S) {
return Prefix.ends_with(S); });
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This header defines various interfaces for pass management in LLVM.
This file defines the Pass Instrumentation classes that provide instrumentation points into the pass ...
static const char PassName[]
LLVM_ABI void addClassToPassName(StringRef ClassName, StringRef PassName)
Add a class name to pass name mapping for use by pass instrumentation.
LLVM_ABI StringRef getPassNameForClassName(StringRef ClassName)
Get the pass name for a given pass class name. Empty if no match found.
Represent a constant reference to a string, i.e.
static constexpr size_t npos
constexpr StringRef substr(size_t Start, size_t N=npos) const
Return a reference to the substring from [Start, Start + N).
size_t find(char C, size_t From=0) const
Search for the first character C in the string.
This is an optimization pass for GlobalISel generic memory operations.
bool any_of(R &&range, UnaryPredicate P)
Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly.
LLVM_ABI bool isSpecialPass(StringRef PassID, const std::vector< StringRef > &Specials)
A special type used by analysis passes to provide an address that identifies that particular analysis...