Revision: 9959
Author:   [email protected]
Date:     Thu Nov 10 07:37:24 2011
Log: Make LiveRange objects 1 word smaller by using a bool instead of enum for register kind.
Review URL: http://codereview.chromium.org/8462016
http://code.google.com/p/v8/source/detail?r=9959

Modified:
 /branches/bleeding_edge/src/lithium-allocator.cc
 /branches/bleeding_edge/src/lithium-allocator.h

=======================================
--- /branches/bleeding_edge/src/lithium-allocator.cc Mon Sep 19 11:36:47 2011 +++ /branches/bleeding_edge/src/lithium-allocator.cc Thu Nov 10 07:37:24 2011
@@ -152,8 +152,8 @@
 LiveRange::LiveRange(int id)
     : id_(id),
       spilled_(false),
+      is_double_(false),
       assigned_register_(kInvalidAssignment),
-      assigned_register_kind_(NONE),
       last_interval_(NULL),
       first_interval_(NULL),
       first_pos_(NULL),
@@ -169,7 +169,7 @@
void LiveRange::set_assigned_register(int reg, RegisterKind register_kind) {
   ASSERT(!HasRegisterAssigned() && !IsSpilled());
   assigned_register_ = reg;
-  assigned_register_kind_ = register_kind;
+  is_double_ = (register_kind == DOUBLE_REGISTERS);
   ConvertOperands();
 }

@@ -555,7 +555,7 @@
       reusable_slots_(8),
       next_virtual_register_(num_values),
       first_artificial_register_(num_values),
-      mode_(NONE),
+      mode_(GENERAL_REGISTERS),
       num_registers_(-1),
       graph_(graph),
       has_osr_entry_(false) {}
@@ -1466,7 +1466,6 @@
 void LAllocator::AllocateGeneralRegisters() {
   HPhase phase("Allocate general registers", this);
   num_registers_ = Register::kNumAllocatableRegisters;
-  mode_ = GENERAL_REGISTERS;
   AllocateRegisters();
 }

@@ -1480,7 +1479,6 @@


 void LAllocator::AllocateRegisters() {
-  ASSERT(mode_ != NONE);
   ASSERT(unhandled_live_ranges_.is_empty());

   for (int i = 0; i < live_ranges_.length(); ++i) {
@@ -1585,7 +1583,6 @@


 const char* LAllocator::RegisterName(int allocation_index) {
-  ASSERT(mode_ != NONE);
   if (mode_ == GENERAL_REGISTERS) {
     return Register::AllocationIndexToString(allocation_index);
   } else {
=======================================
--- /branches/bleeding_edge/src/lithium-allocator.h     Mon Jun  6 04:30:17 2011
+++ /branches/bleeding_edge/src/lithium-allocator.h     Thu Nov 10 07:37:24 2011
@@ -146,7 +146,6 @@


 enum RegisterKind {
-  NONE,
   GENERAL_REGISTERS,
   DOUBLE_REGISTERS
 };
@@ -319,7 +318,7 @@
   // live range to the result live range.
   void SplitAt(LifetimePosition position, LiveRange* result);

- bool IsDouble() const { return assigned_register_kind_ == DOUBLE_REGISTERS; }
+  bool IsDouble() const { return is_double_; }
   bool HasRegisterAssigned() const {
     return assigned_register_ != kInvalidAssignment;
   }
@@ -377,8 +376,8 @@

   int id_;
   bool spilled_;
+  bool is_double_;
   int assigned_register_;
-  RegisterKind assigned_register_kind_;
   UseInterval* last_interval_;
   UseInterval* first_interval_;
   UsePosition* first_pos_;

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to