Change from llvm::SmallSet<std::string> to llvm::StringMap<char>.

llvm-svn: 50766
This commit is contained in:
Mikhail Glushenkov 2008-05-06 18:18:58 +00:00
parent 5e9d6a3dd8
commit eeac27e38c
3 changed files with 18 additions and 6 deletions

View File

@ -50,8 +50,7 @@ namespace {
MaxEdge = E;
MaxWeight = EW;
SingleMax = true;
}
else if (EW == MaxWeight) {
} else if (EW == MaxWeight) {
SingleMax = false;
}
}

View File

@ -20,16 +20,30 @@
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/iterator"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/System/Path.h"
#include <cassert>
#include <string>
namespace llvmc {
typedef llvm::SmallSet<std::string, 5> InputLanguagesSet;
// A wrapper for StringMap that provides set-like functionality.
// Only insert() and count() methods are used by my code.
template <class AllocatorTy = llvm::MallocAllocator>
class StringSet : public llvm::StringMap<char, AllocatorTy> {
typedef llvm::StringMap<char, AllocatorTy> base;
public:
void insert (const std::string& InLang) {
assert(!InLang.empty());
const char* KeyStart = &InLang[0];
const char* KeyEnd = KeyStart + InLang.size();
base::insert(llvm::StringMapEntry<char>::
Create(KeyStart, KeyEnd, base::getAllocator(), '+'));
}
};
typedef StringSet<> InputLanguagesSet;
// An edge of the compilation graph.
class Edge : public llvm::RefCountedBaseVPTR<Edge> {

View File

@ -948,8 +948,7 @@ bool EmitEdgePropertyTest1Arg(const std::string& PropName,
throw OptName + ": incorrect option type!";
O << OptDesc.GenVariableName();
return true;
}
else if (PropName == "if_input_languages_contain") {
} else if (PropName == "if_input_languages_contain") {
O << "InLangs.count(\"" << OptName << "\") != 0";
return true;
}