Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223580 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
NAKAMURA Takumi
2014-12-06 05:57:06 +00:00
parent 1ba81462d0
commit c589098319
2 changed files with 21 additions and 29 deletions

View File

@ -554,7 +554,6 @@ Constant *ConstantInt::getFalse(Type *Ty) {
ConstantInt::getFalse(Ty->getContext())); ConstantInt::getFalse(Ty->getContext()));
} }
// Get a ConstantInt from an APInt. Note that the value stored in the DenseMap // Get a ConstantInt from an APInt. Note that the value stored in the DenseMap
// as the key, is a DenseMapAPIntKeyInfo::KeyTy which has provided the // as the key, is a DenseMapAPIntKeyInfo::KeyTy which has provided the
// operator== and operator!= to ensure that the DenseMap doesn't attempt to // operator== and operator!= to ensure that the DenseMap doesn't attempt to
@ -566,7 +565,8 @@ ConstantInt *ConstantInt::get(LLVMContext &Context, const APInt &V) {
// get an existing value or the insertion position // get an existing value or the insertion position
LLVMContextImpl *pImpl = Context.pImpl; LLVMContextImpl *pImpl = Context.pImpl;
ConstantInt *&Slot = pImpl->IntConstants[DenseMapAPIntKeyInfo::KeyTy(V, ITy)]; ConstantInt *&Slot = pImpl->IntConstants[DenseMapAPIntKeyInfo::KeyTy(V, ITy)];
if (!Slot) Slot = new ConstantInt(ITy, V); if (!Slot)
Slot = new ConstantInt(ITy, V);
return Slot; return Slot;
} }

View File

@ -48,54 +48,46 @@ class Value;
struct DenseMapAPIntKeyInfo { struct DenseMapAPIntKeyInfo {
struct KeyTy { struct KeyTy {
APInt val; APInt val;
Type* type; Type *type;
KeyTy(const APInt& V, Type* Ty) : val(V), type(Ty) {} KeyTy(const APInt &V, Type *Ty) : val(V), type(Ty) {}
bool operator==(const KeyTy& that) const { bool operator==(const KeyTy &that) const {
return type == that.type && this->val == that.val; return type == that.type && this->val == that.val;
} }
bool operator!=(const KeyTy& that) const { bool operator!=(const KeyTy &that) const { return !this->operator==(that); }
return !this->operator==(that);
}
friend hash_code hash_value(const KeyTy &Key) { friend hash_code hash_value(const KeyTy &Key) {
return hash_combine(Key.type, Key.val); return hash_combine(Key.type, Key.val);
} }
}; };
static inline KeyTy getEmptyKey() { return KeyTy(APInt(1,0), nullptr); } static inline KeyTy getEmptyKey() { return KeyTy(APInt(1, 0), nullptr); }
static inline KeyTy getTombstoneKey() { return KeyTy(APInt(1,1), nullptr); } static inline KeyTy getTombstoneKey() { return KeyTy(APInt(1, 1), nullptr); }
static unsigned getHashValue(const KeyTy &Key) { static unsigned getHashValue(const KeyTy &Key) {
return static_cast<unsigned>(hash_value(Key)); return static_cast<unsigned>(hash_value(Key));
} }
static bool isEqual(const KeyTy &LHS, const KeyTy &RHS) { static bool isEqual(const KeyTy &LHS, const KeyTy &RHS) { return LHS == RHS; }
return LHS == RHS;
}
}; };
struct DenseMapAPFloatKeyInfo { struct DenseMapAPFloatKeyInfo {
struct KeyTy { struct KeyTy {
APFloat val; APFloat val;
KeyTy(const APFloat& V) : val(V){} KeyTy(const APFloat &V) : val(V) {}
bool operator==(const KeyTy& that) const { bool operator==(const KeyTy &that) const {
return this->val.bitwiseIsEqual(that.val); return this->val.bitwiseIsEqual(that.val);
} }
bool operator!=(const KeyTy& that) const { bool operator!=(const KeyTy &that) const { return !this->operator==(that); }
return !this->operator==(that);
}
friend hash_code hash_value(const KeyTy &Key) { friend hash_code hash_value(const KeyTy &Key) {
return hash_combine(Key.val); return hash_combine(Key.val);
} }
}; };
static inline KeyTy getEmptyKey() { static inline KeyTy getEmptyKey() {
return KeyTy(APFloat(APFloat::Bogus,1)); return KeyTy(APFloat(APFloat::Bogus, 1));
} }
static inline KeyTy getTombstoneKey() { static inline KeyTy getTombstoneKey() {
return KeyTy(APFloat(APFloat::Bogus,2)); return KeyTy(APFloat(APFloat::Bogus, 2));
} }
static unsigned getHashValue(const KeyTy &Key) { static unsigned getHashValue(const KeyTy &Key) {
return static_cast<unsigned>(hash_value(Key)); return static_cast<unsigned>(hash_value(Key));
} }
static bool isEqual(const KeyTy &LHS, const KeyTy &RHS) { static bool isEqual(const KeyTy &LHS, const KeyTy &RHS) { return LHS == RHS; }
return LHS == RHS;
}
}; };
struct AnonStructTypeKeyInfo { struct AnonStructTypeKeyInfo {
@ -281,7 +273,7 @@ public:
DenseMapAPIntKeyInfo> IntMapTy; DenseMapAPIntKeyInfo> IntMapTy;
IntMapTy IntConstants; IntMapTy IntConstants;
typedef DenseMap<DenseMapAPFloatKeyInfo::KeyTy, ConstantFP*, typedef DenseMap<DenseMapAPFloatKeyInfo::KeyTy, ConstantFP *,
DenseMapAPFloatKeyInfo> FPMapTy; DenseMapAPFloatKeyInfo> FPMapTy;
FPMapTy FPConstants; FPMapTy FPConstants;