| Index: src/hydrogen-instructions.h
|
| ===================================================================
|
| --- src/hydrogen-instructions.h (revision 7081)
|
| +++ src/hydrogen-instructions.h (working copy)
|
| @@ -461,9 +461,9 @@
|
| int id() const { return id_; }
|
| void set_id(int id) { id_ = id; }
|
|
|
| - const ZoneList<HValue*>* uses() const { return &uses_; }
|
| + ZoneList<HValue*>* uses() { return &uses_; }
|
|
|
| - virtual bool EmitAtUses() const { return false; }
|
| + virtual bool EmitAtUses() { return false; }
|
| Representation representation() const { return representation_; }
|
| void ChangeRepresentation(Representation r) {
|
| // Representation was already set and is allowed to be changed.
|
| @@ -1800,7 +1800,8 @@
|
| explicit HPhi(int merged_index)
|
| : inputs_(2),
|
| merged_index_(merged_index),
|
| - phi_id_(-1) {
|
| + phi_id_(-1),
|
| + is_live_(false) {
|
| for (int i = 0; i < Representation::kNumRepresentations; i++) {
|
| non_phi_uses_[i] = 0;
|
| indirect_uses_[i] = 0;
|
| @@ -1834,6 +1835,7 @@
|
| virtual HValue* OperandAt(int index) { return inputs_[index]; }
|
| HValue* GetRedundantReplacement();
|
| void AddInput(HValue* value);
|
| + bool HasRealUses();
|
|
|
| bool IsReceiver() { return merged_index_ == 0; }
|
|
|
| @@ -1872,6 +1874,8 @@
|
| return indirect_uses_[Representation::kDouble];
|
| }
|
| int phi_id() { return phi_id_; }
|
| + bool is_live() { return is_live_; }
|
| + void set_is_live(bool b) { is_live_ = b; }
|
|
|
| protected:
|
| virtual void DeleteFromGraph();
|
| @@ -1886,6 +1890,7 @@
|
| int non_phi_uses_[Representation::kNumRepresentations];
|
| int indirect_uses_[Representation::kNumRepresentations];
|
| int phi_id_;
|
| + bool is_live_;
|
| };
|
|
|
|
|
| @@ -1916,7 +1921,7 @@
|
| return Representation::None();
|
| }
|
|
|
| - virtual bool EmitAtUses() const { return !representation().IsDouble(); }
|
| + virtual bool EmitAtUses() { return !representation().IsDouble(); }
|
| virtual void PrintDataTo(StringStream* stream);
|
| virtual HType CalculateInferredType();
|
| bool IsInteger() const { return handle_->IsSmi(); }
|
| @@ -2191,7 +2196,7 @@
|
|
|
| void SetInputRepresentation(Representation r);
|
|
|
| - virtual bool EmitAtUses() const {
|
| + virtual bool EmitAtUses() {
|
| return !HasSideEffects() && (uses()->length() <= 1);
|
| }
|
|
|
| @@ -2232,7 +2237,7 @@
|
| SetFlag(kUseGVN);
|
| }
|
|
|
| - virtual bool EmitAtUses() const {
|
| + virtual bool EmitAtUses() {
|
| return !HasSideEffects() && (uses()->length() <= 1);
|
| }
|
|
|
| @@ -2255,7 +2260,7 @@
|
| SetFlag(kUseGVN);
|
| }
|
|
|
| - virtual bool EmitAtUses() const {
|
| + virtual bool EmitAtUses() {
|
| return !HasSideEffects() && (uses()->length() <= 1);
|
| }
|
|
|
| @@ -2315,7 +2320,7 @@
|
| SetFlag(kUseGVN);
|
| }
|
|
|
| - virtual bool EmitAtUses() const {
|
| + virtual bool EmitAtUses() {
|
| return !HasSideEffects() && (uses()->length() <= 1);
|
| }
|
|
|
| @@ -2437,7 +2442,7 @@
|
| HValue* left() { return OperandAt(1); }
|
| HValue* right() { return OperandAt(2); }
|
|
|
| - virtual bool EmitAtUses() const {
|
| + virtual bool EmitAtUses() {
|
| return !HasSideEffects() && (uses()->length() <= 1);
|
| }
|
|
|
|
|