llvm::ItaniumManglingCanonicalizer

Canonicalizer for mangled names.

Synopsis

Declared in <llvm/ProfileData/ItaniumManglingCanonicalizer.h>

class ItaniumManglingCanonicalizer;

Description

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.

Type Aliases

NameDescription
Key Opaque key identifying an equivalence class of mangled names.

Enums

NameDescription
EquivalenceError Result of attempting to add a mangling equivalence.
FragmentKind Kind of Itanium mangling fragment used in an equivalence.

Member Functions

NameDescription
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().