Chromium Code Reviews| Index: src/hydrogen-instructions.h |
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
| index 4a23f2a327ef4d41e19481c84c6279ee779a1907..de003477315395d95cfb9d24bf244cf5461e4833 100644 |
| --- a/src/hydrogen-instructions.h |
| +++ b/src/hydrogen-instructions.h |
| @@ -773,6 +773,10 @@ class HInstruction: public HValue { |
| virtual void Verify() const; |
| #endif |
| + // Conservative indication of whether the instruction can |
| + // deoptimize. Allowed to have false positives. |
|
Kevin Millikin (Chromium)
2011/01/18 11:18:39
The comment is also confusing. The predicate has
Vitaly Repeshko
2011/01/18 12:24:56
I renamed the function and the comment is much cle
|
| + virtual bool CanDeoptimize() const { return false; } |
|
fschneider
2011/01/18 10:45:51
I'd rather name this predicate IsCheckInstruction(
Vitaly Repeshko
2011/01/18 12:24:56
Done.
|
| + |
| DECLARE_INSTRUCTION(Instruction) |
| protected: |
| @@ -1504,6 +1508,8 @@ class HCheckMap: public HUnaryOperation { |
| SetFlag(kDependsOnMaps); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Tagged(); |
| } |
| @@ -1537,6 +1543,8 @@ class HCheckFunction: public HUnaryOperation { |
| SetFlag(kUseGVN); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Tagged(); |
| } |
| @@ -1573,6 +1581,8 @@ class HCheckInstanceType: public HUnaryOperation { |
| SetFlag(kUseGVN); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Tagged(); |
| } |
| @@ -1610,6 +1620,8 @@ class HCheckNonSmi: public HUnaryOperation { |
| SetFlag(kUseGVN); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Tagged(); |
| } |
| @@ -1632,6 +1644,8 @@ class HCheckPrototypeMaps: public HInstruction { |
| SetFlag(kDependsOnMaps); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| #ifdef DEBUG |
| virtual void Verify() const; |
| #endif |
| @@ -1668,6 +1682,8 @@ class HCheckSmi: public HUnaryOperation { |
| SetFlag(kUseGVN); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Tagged(); |
| } |
| @@ -1996,6 +2012,8 @@ class HBoundsCheck: public HBinaryOperation { |
| SetFlag(kUseGVN); |
| } |
| + virtual bool CanDeoptimize() const { return true; } |
| + |
| virtual Representation RequiredInputRepresentation(int index) const { |
| return Representation::Integer32(); |
| } |