Lines Matching refs:node
78 TFNode* node = nullptr;
136 // The first '+ 1' is needed by TF Start node, the second '+ 1' is for the
152 TFNode* node;
159 node = builder_->RefNull();
161 node = DefaultValue(type);
165 ssa_env->locals[index++] = node;
270 TFNode* inputs[] = {val.node, block->merge_env->control};
271 val.node = builder_->Phi(val.type, 1, inputs);
297 builder_->BranchNoHint(cond.node, &if_true, &if_false);
300 builder_->BranchExpectFalse(cond.node, &if_true, &if_false);
303 builder_->BranchExpectTrue(cond.node, &if_true, &if_false);
334 val->node = builder_->LoopExitValue(
335 val->node, val->type.machine_representation());
357 result->node = builder_->Unop(opcode, value.node, decoder->position());
362 TFNode* node =
363 builder_->Binop(opcode, lhs.node, rhs.node, decoder->position());
364 if (result) result->node = node;
368 result->node = builder_->Int32Constant(value);
372 result->node = builder_->Int64Constant(value);
376 result->node = builder_->Float32Constant(value);
380 result->node = builder_->Float64Constant(value);
385 result->node = builder_->Simd128Constant(imm.value);
389 result->node = builder_->RefNull();
393 result->node = builder_->RefFunc(function_index);
397 result->node = builder_->RefAsNonNull(arg.node, decoder->position());
404 result->node = ssa_env_->locals[imm.index];
409 ssa_env_->locals[imm.index] = value.node;
414 result->node = value.node;
415 ssa_env_->locals[imm.index] = value.node;
422 (*locals)[i] = local_values[i].node;
433 result->node = builder_->GlobalGet(imm.index);
438 builder_->GlobalSet(imm.index, value.node);
443 result->node =
444 builder_->TableGet(imm.index, index.node, decoder->position());
449 builder_->TableSet(imm.index, index.node, value.node, decoder->position());
459 builder_->Binop(kExprRefEq, obj.node, builder_->RefNull(),
462 result->node = obj.node;
469 result->node =
470 builder_->Select(cond.node, tval.node, fval.node, result->type);
539 builder_->BranchNoHint(cond.node, &tenv->control, &fenv->control);
542 builder_->BranchExpectFalse(cond.node, &tenv->control, &fenv->control);
545 builder_->BranchExpectTrue(cond.node, &tenv->control, &fenv->control);
565 TFNode* sw = builder_->Switch(imm.table_count + 1, key.node);
593 result->node =
594 builder_->LoadMem(type.value_type(), type.mem_type(), index.node,
602 result->node = builder_->LoadTransform(type.value_type(), type.mem_type(),
603 transform, index.node, imm.offset,
610 result->node = builder_->LoadLane(
611 type.value_type(), type.mem_type(), value.node, index.node, imm.offset,
618 builder_->StoreMem(type.mem_rep(), index.node, imm.offset, imm.alignment,
619 value.node, decoder->position(), type.value_type());
625 builder_->StoreLane(type.mem_rep(), index.node, imm.offset, imm.alignment,
626 value.node, laneidx, decoder->position(),
631 result->node = builder_->CurrentMemoryPages();
635 result->node = builder_->MemoryGrow(value.node);
708 func_ref.node, expected_function_index, &success_control,
742 TFNode* phi_args[] = {returns_direct[i].node, returns_ref[i].node,
744 returns[i].node = builder_->Phi(sig->GetReturn(i), 2, phi_args);
779 func_ref.node, expected_function_index, &success_control,
801 builder_->BrOnNull(ref_object.node, &true_env->control,
807 result_on_fallthrough->node = ref_object.node;
815 builder_->BrOnNull(ref_object.node, &false_env->control,
827 TFNode* node = builder_->SimdOp(opcode, inputs.begin());
828 if (result) result->node = node;
836 result->node = builder_->SimdLaneOp(opcode, imm.lane, nodes.begin());
843 TFNode* input_nodes[] = {input0.node, input1.node};
844 result->node = builder_->Simd8x16ShuffleOp(imm.value, input_nodes);
852 args[i] = value_args[i].node;
873 // exist. We only build a landing pad if some node in the try block can
907 values[i].node = caught_values[i];
951 // exist. We only build a landing pad if some node in the try block can
966 TFNode* node = builder_->AtomicOp(opcode, inputs.begin(), imm.alignment,
968 if (result) result->node = node;
976 builder_->MemoryInit(imm.data_segment.index, dst.node, src.node, size.node,
987 builder_->MemoryCopy(dst.node, src.node, size.node, decoder->position());
993 builder_->MemoryFill(dst.node, value.node, size.node, decoder->position());
999 args[0].node, args[1].node, args[2].node,
1009 builder_->TableCopy(imm.table_dst.index, imm.table_src.index, args[0].node,
1010 args[1].node, args[2].node, decoder->position());
1015 result->node = builder_->TableGrow(imm.index, value.node, delta.node);
1020 result->node = builder_->TableSize(imm.index);
1025 builder_->TableFill(imm.index, start.node, value.node, count.node);
1034 arg_nodes[i] = args[i].node;
1036 result->node = builder_->StructNewWithRtt(
1037 imm.index, imm.struct_type, rtt.node, base::VectorOf(arg_nodes));
1047 result->node = builder_->StructNewWithRtt(
1048 imm.index, imm.struct_type, rtt.node, base::VectorOf(arg_nodes));
1054 result->node = builder_->StructGet(
1055 struct_object.node, field.struct_imm.struct_type, field.field_imm.index,
1062 builder_->StructSet(struct_object.node, field.struct_imm.struct_type,
1063 field.field_imm.index, field_value.node,
1071 result->node = builder_->ArrayNewWithRtt(imm.index, imm.array_type,
1072 length.node, initial_value.node,
1073 rtt.node, decoder->position());
1085 result->node =
1086 builder_->ArrayNewWithRtt(imm.index, imm.array_type, length.node,
1087 initial_value, rtt.node, decoder->position());
1093 result->node = builder_->ArrayGet(array_obj.node, imm.array_type,
1094 index.node, NullCheckFor(array_obj.type),
1101 builder_->ArraySet(array_obj.node, imm.array_type, index.node, value.node,
1106 result->node = builder_->ArrayLen(
1107 array_obj.node, NullCheckFor(array_obj.type), decoder->position());
1113 builder_->ArrayCopy(dst.node, dst_index.node, NullCheckFor(dst.type),
1114 src.node, src_index.node, NullCheckFor(src.type),
1115 length.node, decoder->position());
1123 element_nodes[i] = elements[i].node;
1125 result->node =
1126 builder_->ArrayInit(imm.array_type, rtt.node, VectorOf(element_nodes));
1134 result->node = builder_->ArrayInitFromData(
1135 array_imm.array_type, data_segment.index, offset.node, length.node,
1136 rtt.node, decoder->position());
1140 result->node = builder_->I31New(input.node);
1144 result->node = builder_->I31GetS(input.node);
1148 result->node = builder_->I31GetU(input.node);
1152 result->node = builder_->RttCanon(type_index);
1175 result->node = builder_->RefTest(object.node, rtt.node, config);
1182 result->node =
1183 builder_->RefCast(object.node, rtt.node, config, decoder->position());
1199 (builder_->*branch_function)(object.node, rtt.node, config,
1204 forwarding_value->node = object.node;
1224 result->node = builder_->RefIsData(object.node, object.type.is_nullable());
1228 result->node = builder_->RefAsData(object.node, object.type.is_nullable(),
1247 result->node = builder_->RefIsFunc(object.node, object.type.is_nullable());
1251 result->node = builder_->RefAsFunc(object.node, object.type.is_nullable(),
1270 result->node = builder_->RefIsArray(object.node, object.type.is_nullable());
1274 result->node = builder_->RefAsArray(object.node, object.type.is_nullable(),
1293 result->node = builder_->RefIsI31(object.node);
1297 result->node = builder_->RefAsI31(object.node, decoder->position());
1315 to->node = from.node;
1360 nodes[i] = values[i].node;
1400 TFNode* CheckForException(FullDecoder* decoder, TFNode* node) {
1401 DCHECK_NOT_NULL(node);
1403 // We need to emit IfSuccess/IfException nodes if this node throws and has
1405 // around this node, or if this function is being inlined, the IfException
1406 // output of the inlined Call node.
1409 return node;
1414 if (!builder_->ThrowsException(node, &if_success, &if_exception)) {
1415 return node;
1448 // Leave the IfException/LoopExit node dangling. We will connect it during
1455 return node;
1498 DCHECK_NOT_NULL(val.node);
1501 old.node = first ? val.node
1504 old.node, val.node);
1573 // Extend the existing merge control node.
1710 : call_info.index_or_callee_value()->node;
1713 arg_nodes[i + 1] = args[i].node;
1739 returns[i].node = return_nodes[i];
1765 arg_values[0].node = nullptr;
1769 arg_values[0].node = call_info.index_or_callee_value()->node;
1843 if (value.node != nullptr) {
1844 value.node = builder_->LoopExitValue(
1845 value.node, value.type.machine_representation());