14#ifndef LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
15#define LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
71 using Key = uintptr_t;
Canonicalizer for mangled names.
@ Encoding
The mangling fragment is an <encoding>.
@ Name
The mangling fragment is a <name> (or a predefined <substitution>).
@ Type
The mangling fragment is a <type>.
Key lookup(StringRef Mangling)
Find a canonical key for the specified mangling, if one has already been formed.
Key canonicalize(StringRef Mangling)
Form a canonical key for the specified mangling.
ItaniumManglingCanonicalizer()
void operator=(const ItaniumManglingCanonicalizer &)=delete
ItaniumManglingCanonicalizer(const ItaniumManglingCanonicalizer &)=delete
@ InvalidFirstMangling
The first equivalent mangling is invalid.
@ InvalidSecondMangling
The second equivalent mangling is invalid.
@ ManglingAlreadyUsed
Both the equivalent manglings have already been used as components of some other mangling we've looke...
EquivalenceError addEquivalence(FragmentKind Kind, StringRef First, StringRef Second)
Add an equivalence between First and Second.
~ItaniumManglingCanonicalizer()
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
@ First
Helpers to iterate all locations in the MemoryEffectsBase class.