Lines Matching refs:Node
41 void AddToNode(Node* node, OutputFrameStateCombine combine) {
43 int count = OperatorProperties::GetFrameStateInputCount(node->op());
48 NodeProperties::GetFrameStateInput(node, 0)->opcode());
49 Node* frame_state_after =
51 NodeProperties::ReplaceFrameStateInput(node, 0, frame_state_after);
57 NodeProperties::GetFrameStateInput(node, 1)->opcode());
58 NodeProperties::ReplaceFrameStateInput(node, 1, frame_state_before_);
63 output_poke_count_ = node->op()->ValueOutputCount();
69 Node* frame_state_before_;
84 Node* control_dependency,
85 Node* context)
108 Node* parameter = builder->graph()->NewNode(op, graph()->start());
114 Node* undefined_constant = builder->jsgraph()->UndefinedConstant();
151 Node* BytecodeGraphBuilder::Environment::LookupAccumulator() const {
156 Node* BytecodeGraphBuilder::Environment::LookupRegister(
175 Node* saved_reg0_value = values()->at(reg0_index);
182 Node* node, FrameStateBeforeAndAfter* states) {
184 states->AddToNode(node, OutputFrameStateCombine::PokeAt(0));
186 values()->at(accumulator_base_) = node;
191 interpreter::Register the_register, Node* node,
195 states->AddToNode(node, OutputFrameStateCombine::PokeAt(accumulator_base_ -
198 values()->at(values_index) = node;
203 interpreter::Register first_reg, Node* node,
207 states->AddToNode(node, OutputFrameStateCombine::PokeAt(accumulator_base_ -
210 for (int i = 0; i < node->op()->ValueOutputCount(); i++) {
212 builder()->NewNode(common()->Projection(i), node);
218 Node* node, FrameStateBeforeAndAfter* states) {
219 states->AddToNode(node, OutputFrameStateCombine::Ignore());
255 Node* control = builder()->MergeControl(GetControlDependency(),
261 Node* effect = builder()->MergeEffect(GetEffectDependency(),
266 // potentially extending an existing Phi node if possible.
275 // Create a control node for the loop header.
276 Node* control = builder()->NewLoop();
279 Node* effect = builder()->NewEffectPhi(1, GetEffectDependency(), control);
290 Node* terminate = builder()->graph()->NewNode(
297 Node** state_values, int offset, int count) {
306 Node** env_values = (count == 0) ? nullptr : &values()->at(offset);
316 void BytecodeGraphBuilder::Environment::UpdateStateValues(Node** state_values,
326 Node* BytecodeGraphBuilder::Environment::Checkpoint(
340 Node* result = graph()->NewNode(
350 Node** state_values, int offset, int count, int output_poke_start,
398 Node* BytecodeGraphBuilder::GetNewTarget() {
403 Node* node = NewNode(op, graph()->start());
404 new_target_.set(node);
410 Node* BytecodeGraphBuilder::GetFunctionContext() {
415 Node* node = NewNode(op, graph()->start());
416 function_context_.set(node);
422 Node* BytecodeGraphBuilder::GetFunctionClosure() {
426 Node* node = NewNode(op, graph()->start());
427 function_closure_.set(node);
433 Node* BytecodeGraphBuilder::BuildLoadObjectField(Node* object, int offset) {
439 Node* BytecodeGraphBuilder::BuildLoadImmutableObjectField(Node* object,
448 Node* BytecodeGraphBuilder::BuildLoadNativeContextField(int index) {
451 Node* native_context = NewNode(op, environment()->Context());
456 Node* BytecodeGraphBuilder::BuildLoadFeedbackVector() {
458 Node* closure = GetFunctionClosure();
459 Node
461 Node* vector = BuildLoadImmutableObjectField(
500 Node** const inputs = &exit_controls_.front();
501 Node* end = graph()->NewNode(common()->End(input_count), input_count, inputs);
513 Node* node = NewNode(javascript()->StackCheck());
514 PrepareEntryFrameState(node);
551 Node* node = jsgraph()->ZeroConstant();
552 environment()->BindAccumulator(node);
558 Node* node = jsgraph()->Constant(iterator.GetImmediateOperand(0));
559 environment()->BindAccumulator(node);
565 Node* node = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
566 environment()->BindAccumulator(node);
572 Node* node = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
573 environment()->BindAccumulator(node);
579 Node* node = jsgraph()->UndefinedConstant();
580 environment()->BindAccumulator(node);
586 Node* node = jsgraph()->NullConstant();
587 environment()->BindAccumulator(node);
593 Node* node = jsgraph()->TheHoleConstant();
594 environment()->BindAccumulator(node);
600 Node* node = jsgraph()->TrueConstant();
601 environment()->BindAccumulator(node);
607 Node* node = jsgraph()->FalseConstant();
608 environment()->BindAccumulator(node);
614 Node* value = environment()->LookupRegister(iterator.GetRegisterOperand(0));
621 Node* value = environment()->LookupAccumulator();
628 Node* value = environment()->LookupRegister(iterator.GetRegisterOperand(0));
656 Node* node = NewNode(op, BuildLoadFeedbackVector());
657 environment()->BindAccumulator(node, &states);
723 Node* value = environment()->LookupAccumulator();
727 Node* node = NewNode(op, value, BuildLoadFeedbackVector());
728 environment()->RecordAfterState(node, &states);
769 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
770 Node* node = NewNode(op, context);
771 environment()->BindAccumulator(node);
788 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
789 Node* value = environment()->LookupAccumulator();
807 Node* value =
829 Node* value = environment()->LookupAccumulator();
830 Node* name = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
831 Node* language = jsgraph()->Constant(language_mode);
833 Node* store = NewNode(op, value, environment()->Context(), name, language);
877 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
883 Node* node = NewNode(op, object, BuildLoadFeedbackVector());
884 environment()->BindAccumulator(node, &states);
919 Node* key = environment()->LookupAccumulator();
920 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
924 Node* node = NewNode(op, object, key, BuildLoadFeedbackVector());
925 environment()->BindAccumulator(node, &states);
960 Node* value = environment()->LookupAccumulator();
961 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
968 Node* node = NewNode(op, object, value, BuildLoadFeedbackVector());
969 environment()->RecordAfterState(node, &states);
1004 Node* value = environment()->LookupAccumulator();
1005 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1006 Node* key = environment()->LookupRegister(iterator.GetRegisterOperand(1));
1010 Node* node = NewNode(op, object, key, value, BuildLoadFeedbackVector());
1011 environment()->RecordAfterState(node, &states);
1045 Node* context = environment()->LookupAccumulator();
1053 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1065 Node* closure = NewNode(op);
1081 Node* object = NewNode(op, GetFunctionClosure());
1101 Node* literal = NewNode(op, GetFunctionClosure());
1178 Node* BytecodeGraphBuilder::ProcessCallArguments(const Operator* call_op,
1179 Node* callee,
1182 Node** all = info()->zone()->NewArray<Node*>(static_cast<int>(arity));
1190 Node* value = MakeNode(call_op, static_cast<int>(arity), all, false);
1202 Node* callee = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1209 Node* value = ProcessCallArguments(call, callee, receiver, arg_count + 2);
1229 Node* callee = BuildLoadNativeContextField(iterator.GetIndexOperand(0));
1233 // Create node to perform the JS runtime call.
1236 Node* value = ProcessCallArguments(call, callee, receiver, arg_count + 2);
1241 Node* BytecodeGraphBuilder::ProcessCallRuntimeArguments(
1244 Node** all = info()->zone()->NewArray<Node*>(arity);
1250 Node* value = MakeNode(call_runtime_op, static_cast<int>(arity), all, false);
1263 // Create node to perform the runtime call.
1265 Node* value = ProcessCallRuntimeArguments(call, first_arg, arg_count);
1279 // Create node to perform the runtime call.
1281 Node* return_pair = ProcessCallRuntimeArguments(call, first_arg, arg_count);
1286 Node* BytecodeGraphBuilder::ProcessCallNewArguments(
1289 Node** all = info()->zone()->NewArray<Node*>(arity);
1298 Node* value = MakeNode(call_new_op, static_cast<int>(arity), all, false);
1313 Node* value = ProcessCallNewArguments(call, callee, first_arg, arg_count + 2);
1321 Node* value = environment()->LookupAccumulator();
1325 Node* control = NewNode(common()->Throw(), value);
1334 Node* left = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1335 Node* right = environment()->LookupAccumulator();
1336 Node* node = NewNode(js_op, left, right);
1337 environment()->BindAccumulator(node, &states);
1424 Node* node = NewNode(js_op, environment()->LookupAccumulator(),
1426 environment()->BindAccumulator(node, &states);
1435 Node* node = NewNode(js_op, environment()->LookupAccumulator(),
1437 environment()->BindAccumulator(node, &states);
1443 Node* value = NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
1445 Node* node = NewNode(common()->Select(MachineRepresentation::kTagged), value,
1447 environment()->BindAccumulator(node);
1453 Node* node =
1455 environment()->BindAccumulator(node);
1462 Node* key = environment()->LookupAccumulator();
1463 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1464 Node* node =
1466 environment()->BindAccumulator(node, &states);
1487 Node* name = environment()->LookupAccumulator();
1489 Node* result = NewNode(op, environment()->Context(), name);
1497 Node* left = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1498 Node* right = environment()->LookupAccumulator();
1499 Node* node = NewNode(js_op, left, right);
1500 environment()->BindAccumulator(node, &states);
1567 Node* node = NewNode(js_op, environment()->LookupAccumulator());
1568 environment()->BindAccumulator(node, &states);
1718 Node* control =
1727 Node* prepare = nullptr;
1730 Node* receiver = environment()->LookupAccumulator();
1746 Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1747 Node* cache_length =
1749 Node* exit_cond = NewNode(javascript()->ForInDone(), index, cache_length);
1757 Node* receiver =
1759 Node* cache_type =
1761 Node* cache_array =
1763 Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(3));
1764 Node* value = NewNode(javascript()->ForInNext(), receiver, cache_array,
1773 Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(0));
1846 void BytecodeGraphBuilder::BuildConditionalJump(Node* condition) {
1857 void BytecodeGraphBuilder::BuildJumpIfEqual(Node* comperand) {
1858 Node* accumulator = environment()->LookupAccumulator();
1859 Node* condition =
1865 void BytecodeGraphBuilder::BuildJumpIfToBooleanEqual(Node* comperand) {
1866 Node* accumulator = environment()->LookupAccumulator();
1867 Node* to_boolean =
1869 Node* condition = NewNode(javascript()->StrictEqual(), to_boolean, comperand);
1874 Node** BytecodeGraphBuilder::EnsureInputBufferSize(int size) {
1877 input_buffer_ = local_zone()->NewArray<Node*>(size);
1884 void BytecodeGraphBuilder::PrepareEntryFrameState(Node* node) {
1885 DCHECK_EQ(1, OperatorProperties::GetFrameStateInputCount(node->op()));
1887 NodeProperties::GetFrameStateInput(node, 0)->opcode());
1889 node, 0, environment()->Checkpoint(BailoutId(0),
1894 Node* BytecodeGraphBuilder::MakeNode(const Operator* op, int value_input_count,
1895 Node** value_inputs, bool incomplete) {
1906 Node* result = nullptr;
1915 Node** buffer = EnsureInputBufferSize(input_count_with_deps);
1917 Node** current_input = buffer + value_input_count;
1923 // the {Dead} node as a sentinel to be later overwritten
1946 Node* on_success = graph()->NewNode(if_success, result);
1956 Node* BytecodeGraphBuilder::NewPhi(int count, Node* input, Node* control) {
1958 Node** buffer = EnsureInputBufferSize(count + 1);
1965 Node* BytecodeGraphBuilder::NewEffectPhi(int count, Node* input,
1966 Node* control) {
1968 Node** buffer = EnsureInputBufferSize(count + 1);
1975 Node* BytecodeGraphBuilder::MergeControl(Node* control, Node* other) {
1978 // Control node for loop exists, add input.
1983 // Control node for merge exists, add input.
1988 // Control node is a singleton, introduce a merge.
1990 Node* merge_inputs[] = {control, other};
1997 Node* BytecodeGraphBuilder::MergeEffect(Node* value, Node* other,
1998 Node* control) {
2014 Node* BytecodeGraphBuilder::MergeValue(Node* value, Node* other,
2015 Node* control) {
2032 void BytecodeGraphBuilder::UpdateControlDependencyToLeaveFunction(Node* exit) {