Revision: 18010
Author:   [email protected]
Date:     Fri Nov 22 12:38:49 2013 UTC
Log:      Minor clean-up of Type::Print

[email protected]
BUG=

Review URL: https://codereview.chromium.org/75423002
http://code.google.com/p/v8/source/detail?r=18010

Modified:
 /branches/bleeding_edge/src/types.cc
 /branches/bleeding_edge/src/types.h

=======================================
--- /branches/bleeding_edge/src/types.cc        Fri Nov 15 15:14:09 2013 UTC
+++ /branches/bleeding_edge/src/types.cc        Fri Nov 22 12:38:49 2013 UTC
@@ -523,27 +523,37 @@
   PrintF(stdout, "\n");
   Flush(stdout);
 }
+
+
+const char* Type::bitset_name(int bitset) {
+  switch (bitset) {
+    #define PRINT_COMPOSED_TYPE(type, value) case k##type: return #type;
+    BITSET_TYPE_LIST(PRINT_COMPOSED_TYPE)
+    #undef PRINT_COMPOSED_TYPE
+    default:
+      return NULL;
+  }
+}


 void Type::TypePrint(FILE* out) {
   if (is_bitset()) {
-    int val = as_bitset();
-    const char* composed_name = GetComposedName(val);
-    if (composed_name != NULL) {
-      PrintF(out, "%s", composed_name);
-      return;
-    }
-    bool first_entry = true;
-    PrintF(out, "{");
-    for (unsigned i = 0; i < sizeof(val)*8; ++i) {
-      int mask = (1 << i);
-      if ((val & mask) != 0) {
-        if (!first_entry) PrintF(out, ",");
-        first_entry = false;
-        PrintF(out, "%s", GetPrimitiveName(mask));
+    int bitset = as_bitset();
+    const char* name = bitset_name(bitset);
+    if (name != NULL) {
+      PrintF(out, "%s", name);
+    } else {
+      bool is_first = true;
+      PrintF(out, "(");
+      for (int mask = 1; mask != 0; mask = mask << 1) {
+        if ((bitset & mask) != 0) {
+          if (!is_first) PrintF(out, " | ");
+          is_first = false;
+          PrintF(out, "%s", bitset_name(mask));
+        }
       }
+      PrintF(out, ")");
     }
-    PrintF(out, "}");
   } else if (is_constant()) {
     PrintF(out, "Constant(%p : ", static_cast<void*>(*as_constant()));
     from_bitset(LubBitset())->TypePrint(out);
@@ -553,14 +563,14 @@
     from_bitset(LubBitset())->TypePrint(out);
     PrintF(")");
   } else if (is_union()) {
-    PrintF(out, "{");
+    PrintF(out, "(");
     Handle<Unioned> unioned = as_union();
     for (int i = 0; i < unioned->length(); ++i) {
       Handle<Type> type_i = union_get(unioned, i);
-      if (i > 0) PrintF(out, ",");
+      if (i > 0) PrintF(out, " | ");
       type_i->TypePrint(out);
     }
-    PrintF(out, "}");
+    PrintF(out, ")");
   }
 }
 #endif
=======================================
--- /branches/bleeding_edge/src/types.h Fri Nov 15 15:14:09 2013 UTC
+++ /branches/bleeding_edge/src/types.h Fri Nov 22 12:38:49 2013 UTC
@@ -95,7 +95,7 @@
 // a concurrent compilation context.


-#define PRIMITIVE_TYPE_LIST(V)           \
+#define BITSET_TYPE_LIST(V)              \
   V(None,                0)              \
   V(Null,                1 << 0)         \
   V(Undefined,           1 << 1)         \
@@ -113,9 +113,8 @@
   V(RegExp,              1 << 13)        \
   V(OtherObject,         1 << 14)        \
   V(Proxy,               1 << 15)        \
-  V(Internal,            1 << 16)
-
-#define COMPOSED_TYPE_LIST(V)                                       \
+  V(Internal,            1 << 16)        \
+  \
   V(Oddball,         kBoolean | kNull | kUndefined)                 \
   V(Signed32,        kSmi | kOtherSigned32)                         \
   V(Number,          kSigned32 | kUnsigned32 | kDouble)             \
@@ -131,17 +130,12 @@
   V(NonNumber,       kAny - kNumber)                                \
   V(Detectable,      kAllocated - kUndetectable)

-#define TYPE_LIST(V)     \
-  PRIMITIVE_TYPE_LIST(V) \
-  COMPOSED_TYPE_LIST(V)
-
-

 class Type : public Object {
  public:
   #define DEFINE_TYPE_CONSTRUCTOR(type, value)           \
     static Type* type() { return from_bitset(k##type); }
-  TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR)
+  BITSET_TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR)
   #undef DEFINE_TYPE_CONSTRUCTOR

   static Type* Class(Handle<i::Map> map) { return from_handle(map); }
@@ -226,7 +220,7 @@

   enum {
     #define DECLARE_TYPE(type, value) k##type = (value),
-    TYPE_LIST(DECLARE_TYPE)
+    BITSET_TYPE_LIST(DECLARE_TYPE)
     #undef DECLARE_TYPE
     kUnusedEOL = 0
   };
@@ -277,29 +271,7 @@
   int ExtendIntersection(
       Handle<Unioned> unioned, Handle<Type> type, int current_size);

-  static const char* GetComposedName(int type) {
-    switch (type) {
-      #define PRINT_COMPOSED_TYPE(type, value)  \
-      case k##type:                             \
-        return # type;
-      COMPOSED_TYPE_LIST(PRINT_COMPOSED_TYPE)
-      #undef PRINT_COMPOSED_TYPE
-    }
-    return NULL;
-  }
-
-  static const char* GetPrimitiveName(int type) {
-    switch (type) {
-      #define PRINT_PRIMITIVE_TYPE(type, value)  \
-      case k##type:                              \
-        return # type;
-      PRIMITIVE_TYPE_LIST(PRINT_PRIMITIVE_TYPE)
-      #undef PRINT_PRIMITIVE_TYPE
-      default:
-        UNREACHABLE();
-        return "InvalidType";
-    }
-  }
+  static const char* bitset_name(int bitset);
 };


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to