Index: src/compiler/types.h |
diff --git a/src/compiler/types.h b/src/compiler/types.h |
index 66c89d15ad8191d97b18d0ac3acb798913ae4b76..2ebbe1886c74f3afaa14766c93dbce1f162d596f 100644 |
--- a/src/compiler/types.h |
+++ b/src/compiler/types.h |
@@ -22,13 +22,7 @@ namespace compiler { |
// can express class types (a.k.a. specific maps) and singleton types (i.e., |
// concrete constants). |
// |
-// Types consist of two dimensions: semantic (value range) and representation. |
-// Both are related through subtyping. |
-// |
-// |
-// SEMANTIC DIMENSION |
-// |
-// The following equations and inequations hold for the semantic axis: |
+// The following equations and inequations hold: |
// |
// None <= T |
// T <= Any |
@@ -40,7 +34,6 @@ namespace compiler { |
// InternalizedString < String |
// |
// Receiver = Object \/ Proxy |
-// RegExp < Object |
// OtherUndetectable < Object |
// DetectableReceiver = Receiver - OtherUndetectable |
// |
@@ -103,18 +96,13 @@ namespace compiler { |
// clang-format off |
-#define MASK_BITSET_TYPE_LIST(V) \ |
- V(Semantic, 0xfffffffeu) |
- |
-#define SEMANTIC(k) ((k) & BitsetType::kSemantic) |
- |
#define INTERNAL_BITSET_TYPE_LIST(V) \ |
V(OtherUnsigned31, 1u << 1) \ |
V(OtherUnsigned32, 1u << 2) \ |
V(OtherSigned32, 1u << 3) \ |
V(OtherNumber, 1u << 4) \ |
-#define SEMANTIC_BITSET_TYPE_LIST(V) \ |
+#define PROPER_BITSET_TYPE_LIST(V) \ |
V(None, 0u) \ |
V(Negative31, 1u << 5) \ |
V(Null, 1u << 6) \ |
@@ -193,13 +181,9 @@ namespace compiler { |
* occur as part of PlainNumber. |
*/ |
-#define PROPER_BITSET_TYPE_LIST(V) \ |
- SEMANTIC_BITSET_TYPE_LIST(V) |
- |
-#define BITSET_TYPE_LIST(V) \ |
- MASK_BITSET_TYPE_LIST(V) \ |
- INTERNAL_BITSET_TYPE_LIST(V) \ |
- SEMANTIC_BITSET_TYPE_LIST(V) |
+#define BITSET_TYPE_LIST(V) \ |
+ INTERNAL_BITSET_TYPE_LIST(V) \ |
+ PROPER_BITSET_TYPE_LIST(V) |
class Type; |
@@ -224,11 +208,7 @@ class BitsetType { |
return static_cast<bitset>(reinterpret_cast<uintptr_t>(this) ^ 1u); |
} |
- static bool IsInhabited(bitset bits) { return SemanticIsInhabited(bits); } |
- |
- static bool SemanticIsInhabited(bitset bits) { |
- return SEMANTIC(bits) != kNone; |
- } |
+ static bool IsInhabited(bitset bits) { return bits != kNone; } |
static bool Is(bitset bits1, bitset bits2) { |
return (bits1 | bits2) == bits2; |
@@ -371,7 +351,7 @@ class RangeType : public TypeBase { |
static Type* New(Limits lim, Zone* zone) { |
DCHECK(IsInteger(lim.min) && IsInteger(lim.max)); |
DCHECK(lim.min <= lim.max); |
- BitsetType::bitset bits = SEMANTIC(BitsetType::Lub(lim.min, lim.max)); |
+ BitsetType::bitset bits = BitsetType::Lub(lim.min, lim.max); |
return AsType(new (zone->New(sizeof(RangeType))) RangeType(bits, lim)); |
} |
@@ -526,9 +506,6 @@ class Type { |
} |
static Type* For(i::Handle<i::Map> map) { return For(*map); } |
- // Extraction of components. |
- static Type* Semantic(Type* t, Zone* zone); |
- |
// Predicates. |
bool IsInhabited() { return BitsetType::IsInhabited(this->BitsetLub()); } |
@@ -627,14 +604,10 @@ class Type { |
} |
UnionType* AsUnion() { return UnionType::cast(this); } |
- // Auxiliary functions. |
- bool SemanticMaybe(Type* that); |
- |
bitset BitsetGlb() { return BitsetType::Glb(this); } |
bitset BitsetLub() { return BitsetType::Lub(this); } |
bool SlowIs(Type* that); |
- bool SemanticIs(Type* that); |
static bool Overlap(RangeType* lhs, RangeType* rhs); |
static bool Contains(RangeType* lhs, RangeType* rhs); |