Commit 1b64598d authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[Interpreter] Inline some functions to improve expression depth of binary ops.

Inlines some functions to improve reduce the stack requirements for
chains of binary operations in the bytecode generator, thereby
enabling support of deeper expression stacks.

BUG=chromium:731861

Change-Id: I5ca437d507e9b2a7eb74f33deaa708ecd646077b
Reviewed-on: https://chromium-review.googlesource.com/541356
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46080}
parent 49101b52
......@@ -195,13 +195,14 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
TypeHint VisitForAccumulatorValue(Expression* expr);
void VisitForAccumulatorValueOrTheHole(Expression* expr);
MUST_USE_RESULT Register VisitForRegisterValue(Expression* expr);
void VisitForRegisterValue(Expression* expr, Register destination);
INLINE(void VisitForRegisterValue(Expression* expr, Register destination));
void VisitAndPushIntoRegisterList(Expression* expr, RegisterList* reg_list);
void VisitForEffect(Expression* expr);
void VisitForTest(Expression* expr, BytecodeLabels* then_labels,
BytecodeLabels* else_labels, TestFallthrough fallthrough);
TypeHint VisitForAddOperand(Expression* expr, RegisterList* operand_registers,
Register* out_register);
INLINE(TypeHint VisitForAddOperand(Expression* expr,
RegisterList* operand_registers,
Register* out_register));
void VisitInSameTestExecutionScope(Expression* expr);
// Returns the runtime function id for a store to super for the function's
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment