// TypePrinting Class: Type printing machinery
//===----------------------------------------------------------------------===//
-static std::map<const Type *, std::string> &getTypeNamesMap(void *M) {
- return *static_cast<std::map<const Type *, std::string>*>(M);
+static DenseMap<const Type *, std::string> &getTypeNamesMap(void *M) {
+ return *static_cast<DenseMap<const Type *, std::string>*>(M);
}
void TypePrinting::clear() {
}
TypePrinting::TypePrinting(const Module *M) {
- TypeNames = new std::map<const Type *, std::string>();
+ TypeNames = new DenseMap<const Type *, std::string>();
if (M == 0) return;
// If the module has a symbol table, take all global types and stuff their
SmallVectorImpl<const Type *> &TypeStack,
raw_ostream &OS) {
// Check to see if the type is named.
- std::map<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
- std::map<const Type *, std::string>::iterator I = TM.find(Ty);
+ DenseMap<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
+ DenseMap<const Type *, std::string>::iterator I = TM.find(Ty);
if (I != TM.end() &&
// If the name wasn't temporarily removed use it.
!I->second.empty()) {
///
void TypePrinting::print(const Type *Ty, raw_ostream &OS) {
// Check to see if the type is named.
- std::map<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
- std::map<const Type*, std::string>::iterator I = TM.find(Ty);
+ DenseMap<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
+ DenseMap<const Type*, std::string>::iterator I = TM.find(Ty);
if (I != TM.end()) {
OS << I->second;
return;
void TypePrinting::printAtLeastOneLevel(const Type *Ty, raw_ostream &OS) {
// If the type does not have a name, then it is already guaranteed to print at
// least one level.
- std::map<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
- std::map<const Type*, std::string>::iterator I = TM.find(Ty);
+ DenseMap<const Type*, std::string> &TM = getTypeNamesMap(TypeNames);
+ DenseMap<const Type*, std::string>::iterator I = TM.find(Ty);
if (I == TM.end())
return print(Ty, OS);