Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 191d86b47a44e24d920036d378cf81dd4e4fba4a..70b7854750d7a5651ab1ca69ab3ba54b607e7eea 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -3270,14 +3270,7 @@ class InductionVariableData final : public ZoneObject { |
class HPhi final : public HValue { |
public: |
HPhi(int merged_index, Zone* zone) |
- : inputs_(2, zone), |
- merged_index_(merged_index), |
- phi_id_(-1), |
- induction_variable_data_(NULL) { |
- for (int i = 0; i < Representation::kNumRepresentations; i++) { |
- non_phi_uses_[i] = 0; |
- indirect_uses_[i] = 0; |
- } |
+ : inputs_(2, zone), merged_index_(merged_index) { |
DCHECK(merged_index >= 0 || merged_index == kInvalidMergedIndex); |
SetFlag(kFlexibleRepresentation); |
SetFlag(kAllowUndefinedAsNaN); |
@@ -3330,32 +3323,15 @@ class HPhi final : public HValue { |
void InitRealUses(int id); |
void AddNonPhiUsesFrom(HPhi* other); |
- void AddIndirectUsesTo(int* use_count); |
- int tagged_non_phi_uses() const { |
- return non_phi_uses_[Representation::kTagged]; |
- } |
- int smi_non_phi_uses() const { |
- return non_phi_uses_[Representation::kSmi]; |
- } |
- int int32_non_phi_uses() const { |
- return non_phi_uses_[Representation::kInteger32]; |
- } |
- int double_non_phi_uses() const { |
- return non_phi_uses_[Representation::kDouble]; |
- } |
- int tagged_indirect_uses() const { |
- return indirect_uses_[Representation::kTagged]; |
- } |
- int smi_indirect_uses() const { |
- return indirect_uses_[Representation::kSmi]; |
+ Representation representation_from_indirect_uses() const { |
+ return representation_from_indirect_uses_; |
} |
- int int32_indirect_uses() const { |
- return indirect_uses_[Representation::kInteger32]; |
- } |
- int double_indirect_uses() const { |
- return indirect_uses_[Representation::kDouble]; |
+ |
+ bool has_type_feedback_from_uses() const { |
+ return has_type_feedback_from_uses_; |
} |
+ |
int phi_id() { return phi_id_; } |
static HPhi* cast(HValue* value) { |
@@ -3376,13 +3352,19 @@ class HPhi final : public HValue { |
} |
private: |
+ Representation representation_from_non_phi_uses() const { |
+ return representation_from_non_phi_uses_; |
+ } |
+ |
ZoneList<HValue*> inputs_; |
- int merged_index_; |
+ int merged_index_ = 0; |
+ |
+ int phi_id_ = -1; |
+ InductionVariableData* induction_variable_data_ = nullptr; |
- int non_phi_uses_[Representation::kNumRepresentations]; |
- int indirect_uses_[Representation::kNumRepresentations]; |
- int phi_id_; |
- InductionVariableData* induction_variable_data_; |
+ Representation representation_from_indirect_uses_ = Representation::None(); |
+ Representation representation_from_non_phi_uses_ = Representation::None(); |
+ bool has_type_feedback_from_uses_ = false; |
// TODO(titzer): we can't eliminate the receiver for generating backtraces |
bool IsDeletable() const override { return !IsReceiver(); } |