Index: src/hydrogen-check-elimination.h |
diff --git a/src/hydrogen-check-elimination.h b/src/hydrogen-check-elimination.h |
index b38447b1e7b43235ab279be130d0d372cd46b3a3..9f3b198c6f708f750c6976fe0f986b7bfbeb96b1 100644 |
--- a/src/hydrogen-check-elimination.h |
+++ b/src/hydrogen-check-elimination.h |
@@ -16,11 +16,20 @@ namespace internal { |
class HCheckEliminationPhase : public HPhase { |
public: |
explicit HCheckEliminationPhase(HGraph* graph) |
- : HPhase("H_Check Elimination", graph), aliasing_() { |
+ : HPhase("H_Check Elimination", graph), aliasing_(), |
+ string_maps_(kStringMapsSize, zone()) { |
+ // Compute the set of string maps. |
+ #define ADD_STRING_MAP(type, size, name, Name) \ |
+ string_maps_.Add(Unique<Map>::CreateImmovable( \ |
+ graph->isolate()->factory()->name##_map()), zone()); |
+ STRING_TYPE_LIST(ADD_STRING_MAP) |
+ #undef ADD_STRING_MAP |
+ ASSERT_EQ(kStringMapsSize, string_maps_.size()); |
#ifdef DEBUG |
redundant_ = 0; |
removed_ = 0; |
removed_cho_ = 0; |
+ removed_cit_ = 0; |
narrowed_ = 0; |
loads_ = 0; |
empty_ = 0; |
@@ -35,13 +44,20 @@ class HCheckEliminationPhase : public HPhase { |
friend class HCheckTable; |
private: |
+ const UniqueSet<Map>* string_maps() const { return &string_maps_; } |
+ |
void PrintStats(); |
HAliasAnalyzer* aliasing_; |
+ #define COUNT(type, size, name, Name) + 1 |
+ static const int kStringMapsSize = 0 STRING_TYPE_LIST(COUNT); |
+ #undef COUNT |
+ UniqueSet<Map> string_maps_; |
#ifdef DEBUG |
int redundant_; |
int removed_; |
int removed_cho_; |
+ int removed_cit_; |
int narrowed_; |
int loads_; |
int empty_; |