Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Unified Diff: src/compiler/bytecode-graph-builder.h

Issue 1570623007: [Interpreter] Add support for CallRuntimeForPair to Bytecode Graph Builder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@int_eval
Patch Set: Fix test flags Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/bytecode-graph-builder.h
diff --git a/src/compiler/bytecode-graph-builder.h b/src/compiler/bytecode-graph-builder.h
index ccb6d1e3de28acf1cdddbd2ce6001dfaf55d5ba3..9c22251e0f478a248cfc227d82d14e059937d43a 100644
--- a/src/compiler/bytecode-graph-builder.h
+++ b/src/compiler/bytecode-graph-builder.h
@@ -28,11 +28,6 @@ class BytecodeGraphBuilder {
Graph* graph() const { return jsgraph_->graph(); }
private:
- enum class AccumulatorUpdateMode {
- kOutputIgnored,
- kOutputInAccumulator,
- };
-
class Environment;
class FrameStateBeforeAndAfter;
@@ -263,14 +258,17 @@ class BytecodeGraphBuilder::Environment : public ZoneObject {
int parameter_count() const { return parameter_count_; }
int register_count() const { return register_count_; }
- void BindRegister(interpreter::Register the_register, Node* node);
+ Node* LookupAccumulator() const;
Node* LookupRegister(interpreter::Register the_register) const;
+
void ExchangeRegisters(interpreter::Register reg0,
interpreter::Register reg1);
void BindAccumulator(Node* node, FrameStateBeforeAndAfter* states = nullptr);
- Node* LookupAccumulator() const;
-
+ void BindRegister(interpreter::Register the_register, Node* node,
+ FrameStateBeforeAndAfter* states = nullptr);
+ void BindRegistersToProjections(interpreter::Register first_reg, Node* node,
+ FrameStateBeforeAndAfter* states = nullptr);
void RecordAfterState(Node* node, FrameStateBeforeAndAfter* states);
bool IsMarkedAsUnreachable() const;
@@ -284,12 +282,11 @@ class BytecodeGraphBuilder::Environment : public ZoneObject {
// Preserve a checkpoint of the environment for the IR graph. Any
// further mutation of the environment will not affect checkpoints.
- Node* Checkpoint(BailoutId ast_id, AccumulatorUpdateMode update_mode);
+ Node* Checkpoint(BailoutId bytecode_offset, OutputFrameStateCombine combine);
// Returns true if the state values are up to date with the current
- // environment. If update_mode is AccumulatorUpdateMode::kOutputInAccumulator
- // then accumulator state can be different from the environment.
- bool StateValuesAreUpToDate(AccumulatorUpdateMode update_mode);
+ // environment.
+ bool StateValuesAreUpToDate(int output_poke_offset, int output_poke_count);
// Control dependency tracked by this environment.
Node* GetControlDependency() const { return control_dependency_; }
@@ -307,6 +304,8 @@ class BytecodeGraphBuilder::Environment : public ZoneObject {
private:
explicit Environment(const Environment* copy);
void PrepareForLoop();
+ bool StateValuesAreUpToDate(Node** state_values, int offset, int count,
+ int output_poke_start, int output_poke_end);
bool StateValuesRequireUpdate(Node** state_values, int offset, int count);
void UpdateStateValues(Node** state_values, int offset, int count);
« no previous file with comments | « no previous file | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698