Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 300673428257d9fee2d14c36757884433f50b716..a94376daeed8eec49fa23b3c82f69ce597dbdc39 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -104,6 +104,7 @@ class LChunkBuilder; |
V(DeleteProperty) \ |
V(Deoptimize) \ |
V(Div) \ |
+ V(DummyUse) \ |
V(ElementsKind) \ |
V(EnterInlined) \ |
V(FastLiteral) \ |
@@ -1024,6 +1025,28 @@ class HBlockEntry: public HTemplateInstruction<0> { |
}; |
+class HDummyUse: public HTemplateInstruction<1> { |
+ public: |
+ explicit HDummyUse(HValue* value) { |
+ SetOperandAt(0, value); |
+ // Pretend to be a Smi so that the HChange instructions inserted |
+ // before any use generate as little code as possible. |
+ set_representation(Representation::Tagged()); |
+ set_type(HType::Smi()); |
+ } |
+ |
+ HValue* value() { return OperandAt(0); } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) { |
+ return Representation::None(); |
+ } |
+ |
+ virtual void PrintDataTo(StringStream* stream); |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(DummyUse); |
+}; |
+ |
+ |
// We insert soft-deoptimize when we hit code with unknown typefeedback, |
// so that we get a chance of re-optimizing with useful typefeedback. |
// HSoftDeoptimize does not end a basic block as opposed to HDeoptimize. |