Canonicalizer for mangled names.
Declared in <llvm/ProfileData/ItaniumManglingCanonicalizer.h>
class ItaniumManglingCanonicalizer;
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.
| Name | Description |
|---|---|
Key | Opaque key identifying an equivalence class of mangled names. |
| Name | Description |
|---|---|
EquivalenceError | Result of attempting to add a mangling equivalence. |
FragmentKind | Kind of Itanium mangling fragment used in an equivalence. |
| Name | Description |
|---|---|
ItaniumManglingCanonicalizer [constructor] | Constructors |
~ItaniumManglingCanonicalizer [destructor] | Destroy the canonicalizer. |
operator= [deleted] | Deleted copy assignment. |
addEquivalence | Add an equivalence between First and Second. Both manglings must live at least as long as the canonicalizer. |
canonicalize | Form a canonical key for a mangling. |
lookup | Find a canonical key for the specified mangling, if one has already been formed. Otherwise returns Key(). |