Add ImmutableSet profiling info for 'bool'.
authorJordan Rose <jordan_rose@apple.com>
Fri, 8 Nov 2013 17:23:49 +0000 (17:23 +0000)
committerJordan Rose <jordan_rose@apple.com>
Fri, 8 Nov 2013 17:23:49 +0000 (17:23 +0000)
Useful for tri-state maps: true, false, and "no data yet".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194266 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/ImmutableSet.h

index 2a0579e29eee148c6dbdc8d800505f8535c19617..ad349699e2a11bcdeba936fb196c734f8bf19d3b 100644 (file)
@@ -851,6 +851,18 @@ PROFILE_INTEGER_INFO(unsigned long long)
 
 #undef PROFILE_INTEGER_INFO
 
+/// Profile traits for booleans.
+template <>
+struct ImutProfileInfo<bool> {
+  typedef const bool  value_type;
+  typedef const bool& value_type_ref;
+
+  static inline void Profile(FoldingSetNodeID& ID, value_type_ref X) {
+    ID.AddBoolean(X);
+  }
+};
+
+
 /// Generic profile trait for pointer types.  We treat pointers as
 /// references to unique objects.
 template <typename T>