| Index: src/hydrogen.h
|
| diff --git a/src/hydrogen.h b/src/hydrogen.h
|
| index 8f273f4967e4fb6538f558a9620026deb716ef00..078e78002caf061ea0c48ca3d37cf6d130f99d0b 100644
|
| --- a/src/hydrogen.h
|
| +++ b/src/hydrogen.h
|
| @@ -992,9 +992,27 @@ class HGraphBuilder {
|
|
|
| // Adding instructions.
|
| HInstruction* AddInstruction(HInstruction* instr);
|
| +
|
| + template<class I>
|
| + I* Add() { return static_cast<I*>(AddInstruction(new(zone()) I())); }
|
| +
|
| + template<class I, class P1>
|
| + I* Add(P1 p1) {
|
| + return static_cast<I*>(AddInstruction(new(zone()) I(p1)));
|
| + }
|
| +
|
| + template<class I, class P1, class P2>
|
| + I* Add(P1 p1, P2 p2) {
|
| + return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2)));
|
| + }
|
| +
|
| + template<class I, class P1, class P2, class P3>
|
| + I* Add(P1 p1, P2 p2, P3 p3) {
|
| + return static_cast<I*>(AddInstruction(new(zone()) I(p1, p2, p3)));
|
| + }
|
| +
|
| void AddSimulate(BailoutId id,
|
| RemovableSimulate removable = FIXED_SIMULATE);
|
| - HBoundsCheck* AddBoundsCheck(HValue* index, HValue* length);
|
|
|
| HReturn* AddReturn(HValue* value);
|
|
|
| @@ -1447,7 +1465,12 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor {
|
|
|
| bool inline_bailout() { return inline_bailout_; }
|
|
|
| - void AddSoftDeoptimize();
|
| + enum SoftDeoptimizeMode {
|
| + MUST_EMIT_SOFT_DEOPT,
|
| + CAN_OMIT_SOFT_DEOPT
|
| + };
|
| +
|
| + void AddSoftDeoptimize(SoftDeoptimizeMode mode = CAN_OMIT_SOFT_DEOPT);
|
|
|
| void Bailout(const char* reason);
|
|
|
|
|