class ItaniumManglingCanonicalizer
Declaration
class ItaniumManglingCanonicalizer { /* full declaration omitted */ };
Description
Canonicalizer for mangled names. This class allows specifying a list of "equivalent" manglings. For example, you can specify that Ss is equivalent to NSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE and then manglings that refer to libstdc++'s 'std::string' will be considered equivalent to manglings that are the same except that they refer to libc++'s 'std::string'. This can be used when data (eg, profiling data) is available for a version of a program built in a different configuration, with correspondingly different manglings.
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:34
Method Overview
- public ItaniumManglingCanonicalizer()
- public ItaniumManglingCanonicalizer(const llvm::ItaniumManglingCanonicalizer &)
- public llvm::ItaniumManglingCanonicalizer::EquivalenceError addEquivalence(llvm::ItaniumManglingCanonicalizer::FragmentKind Kind, llvm::StringRef First, llvm::StringRef Second)
- public llvm::ItaniumManglingCanonicalizer::Key canonicalize(llvm::StringRef Mangling)
- public llvm::ItaniumManglingCanonicalizer::Key lookup(llvm::StringRef Mangling)
- public ~ItaniumManglingCanonicalizer()
Methods
¶ItaniumManglingCanonicalizer()
ItaniumManglingCanonicalizer()
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:36
¶ItaniumManglingCanonicalizer(
const llvm::ItaniumManglingCanonicalizer&)
ItaniumManglingCanonicalizer(
const llvm::ItaniumManglingCanonicalizer&)
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:37
Parameters
¶llvm::ItaniumManglingCanonicalizer::
EquivalenceError
addEquivalence(
llvm::ItaniumManglingCanonicalizer::
FragmentKind Kind,
llvm::StringRef First,
llvm::StringRef Second)
llvm::ItaniumManglingCanonicalizer::
EquivalenceError
addEquivalence(
llvm::ItaniumManglingCanonicalizer::
FragmentKind Kind,
llvm::StringRef First,
llvm::StringRef Second)
Description
Add an equivalence between \p First and \p Second. Both manglings must live at least as long as the canonicalizer.
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:67
Parameters
- llvm::ItaniumManglingCanonicalizer::FragmentKind Kind
- llvm::StringRef First
- llvm::StringRef Second
¶llvm::ItaniumManglingCanonicalizer::Key
canonicalize(llvm::StringRef Mangling)
llvm::ItaniumManglingCanonicalizer::Key
canonicalize(llvm::StringRef Mangling)
Description
Form a canonical key for the specified mangling. They key will be the same for all equivalent manglings, and different for any two non-equivalent manglings, but is otherwise unspecified. Returns Key() if (and only if) the mangling is not a valid Itanium C++ ABI mangling. The string denoted by Mangling must live as long as the canonicalizer.
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:80
Parameters
- llvm::StringRef Mangling
¶llvm::ItaniumManglingCanonicalizer::Key lookup(
llvm::StringRef Mangling)
llvm::ItaniumManglingCanonicalizer::Key lookup(
llvm::StringRef Mangling)
Description
Find a canonical key for the specified mangling, if one has already been formed. Otherwise returns Key().
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:84
Parameters
- llvm::StringRef Mangling
¶~ItaniumManglingCanonicalizer()
~ItaniumManglingCanonicalizer()
Declared at: llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h:39