///
unsigned Count;
- /// TypeMap - If the client wants us to unique types, this keeps track of the
- /// current assignments and TypeCounter keeps track of the next id to assign.
- DenseMap<const Type*, unsigned> TypeMap;
- unsigned TypeCounter;
-
/// AcceptableChars - This bitfield contains a one for each character that is
/// allowed to be part of an unmangled name.
unsigned AcceptableChars[256/32];
///
std::string makeNameProper(const std::string &x, const char *Prefix = 0,
const char *PrivatePrefix = 0);
-
-private:
- /// getTypeID - Return a unique ID for the specified LLVM type.
- ///
- unsigned getTypeID(const Type *Ty);
};
} // End llvm namespace
return Result;
}
-/// getTypeID - Return a unique ID for the specified LLVM type.
-///
-unsigned Mangler::getTypeID(const Type *Ty) {
- unsigned &E = TypeMap[Ty];
- if (E == 0) E = ++TypeCounter;
- return E;
-}
-
std::string Mangler::getValueName(const GlobalValue *GV, const char *Suffix) {
// Check to see whether we've already named V.
std::string &Name = Memo[GV];
Mangler::Mangler(Module &M, const char *prefix, const char *privatePrefix)
: Prefix(prefix), PrivatePrefix (privatePrefix), UseQuotes(false),
- PreserveAsmNames(false), Count(0), TypeCounter(0) {
+ PreserveAsmNames(false), Count(0) {
std::fill(AcceptableChars, array_endof(AcceptableChars), 0);
// Letters and numbers are acceptable.