Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 27675606056852a9093c827bf9ff16c0b18d09d4..62e7f35f6713e96cedf033ba3c0793f6aa56fa4a 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -819,6 +819,11 @@ class HValue: public ZoneObject { |
: NULL; |
} |
+ // A purely informative definition is an idef that will not emit code and |
+ // should therefore be removed from the graph in the RestoreActualValues |
+ // phase (so that live ranges will be shorter). |
+ virtual bool IsPurelyInformativeDefinition() { return false; } |
+ |
// This method must always return the original HValue SSA definition |
// (regardless of any iDef of this value). |
HValue* ActualValue() { |
@@ -1286,6 +1291,7 @@ class HNumericConstraint : public HTemplateInstruction<2> { |
NumericRelation relation() { return relation_; } |
virtual int RedefinedOperandIndex() { return 0; } |
+ virtual bool IsPurelyInformativeDefinition() { return true; } |
virtual Representation RequiredInputRepresentation(int index) { |
return representation(); |
@@ -3359,6 +3365,7 @@ class HBoundsCheck: public HTemplateInstruction<2> { |
HValue* length() { return OperandAt(1); } |
virtual int RedefinedOperandIndex() { return 0; } |
+ virtual bool IsPurelyInformativeDefinition() { return skip_check(); } |
virtual void AddInformativeDefinitions(); |
DECLARE_CONCRETE_INSTRUCTION(BoundsCheck) |