Lines Matching defs:graph
23 #include "src/compiler/graph-visualizer.h"
24 #include "src/compiler/graph.h"
27 #include "src/compiler/js-graph.h"
73 SetEffect(graph()->NewNode( \
79 SetEffect(graph()->NewNode( \
94 Graph* g = mcgraph->graph();
137 Node* start = graph()->NewNode(mcgraph()->common()->Start(params));
138 graph()->SetStart(start);
143 return graph()->NewNode(mcgraph()->common()->Parameter(index),
144 graph()->start());
148 return graph()->NewNode(mcgraph()->common()->Loop(1), entry);
153 graph()->NewNode(mcgraph()->common()->Terminate(), effect, control);
169 *if_success = graph()->NewNode(mcgraph()->common()->IfSuccess(), node);
171 graph()->NewNode(mcgraph()->common()->IfException(), node, node);
193 return graph()->NewNode(mcgraph()->common()->Merge(count), count, controls);
201 return graph()->NewNode(
212 return graph()->NewNode(mcgraph()->common()->EffectPhi(count), count + 1,
254 Node* limit_address = graph()->NewNode(
258 Node* limit = graph()->NewNode(
262 Node* pointer = graph()->NewNode(mcgraph()->machine()->LoadStackPointer());
265 graph()->NewNode(mcgraph()->machine()->UintLessThan(), limit, pointer);
267 Diamond stack_check(graph(), mcgraph()->common(), check, BranchHint::kTrue);
287 Node* call = graph()->NewNode(stack_check_call_operator_.get(),
302 Node* start = graph()->start();
304 Node* dummy = graph()->NewNode(mcgraph()->common()->Dead());
586 return graph()->NewNode(op, left, right);
596 return graph()->NewNode(op, input, mcgraph()->Int32Constant(0));
666 Node* reversed = graph()->NewNode(m->Word32ReverseBits().op(), input);
667 Node* result = graph()->NewNode(m->Word32Clz(), reversed);
778 Node* reversed = graph()->NewNode(m->Word64ReverseBits().op(), input);
779 Node* result = graph()->NewNode(m->Word64Clz(), reversed);
798 return graph()->NewNode(op, input, mcgraph()->Int64Constant(0));
850 return graph()->NewNode(m->WordEqual(), input, RefNull());
868 return graph()->NewNode(op, input);
885 mcgraph->graph()->NewNode(mcgraph->common()->Branch(hint), cond, control);
886 *true_node = mcgraph->graph()->NewNode(mcgraph->common()->IfTrue(), branch);
887 *false_node = mcgraph->graph()->NewNode(mcgraph->common()->IfFalse(), branch);
937 Node* node = SetControl(graph()->NewNode(mcgraph()->common()->TrapIf(trap_id),
946 Node* node = SetControl(graph()->NewNode(
957 if (m.HasValue() && !m.Is(val)) return graph()->start();
962 graph()->NewNode(mcgraph()->machine()->Word32Equal(),
979 if (m.HasValue() && !m.Is(val)) return graph()->start();
981 graph()->NewNode(mcgraph()->machine()->Word64Equal(), node,
993 return graph
998 return graph()->NewNode(mcgraph()->common()->IfValue(value), sw);
1003 return graph()->NewNode(mcgraph()->common()->IfDefault(), sw);
1022 graph()->NewNode(mcgraph()->common()->Return(count), count + 3, buf);
1045 node = graph()->NewNode(mcgraph()->machine()->Word32And(), node,
1061 node = graph()->NewNode(mcgraph()->machine()->Word64And(), node,
1093 value = graph()->NewNode(m->BitcastFloat64ToInt64(), node);
1100 value = graph()->NewNode(m->BitcastFloat32ToInt32(), node);
1121 value = graph()->NewNode(m->TruncateInt64ToInt32(), value);
1126 graph()->NewNode(m->Word32Shl(), value, mcgraph()->Int32Constant(16));
1131 graph()->NewNode(m->Word32Shl(), value, mcgraph()->Int32Constant(16));
1140 result = graph()->NewNode(m->Word32ReverseBytes(), value);
1143 result = graph()->NewNode(m->Word64ReverseBytes(), value);
1148 byte_reversed_lanes[lane] = graph()->NewNode(
1150 graph()->NewNode(mcgraph()->machine()->I32x4ExtractLane(lane),
1156 graph()->NewNode(mcgraph()->machine()->S128And(), value, value);
1160 graph()->NewNode(mcgraph()->machine()->I32x4ReplaceLane(3 - lane),
1182 shiftLower = graph()->NewNode(m->Word64Shl(), value,
1184 shiftHigher = graph()->NewNode(m->Word64Shr(), value,
1186 lowerByte = graph()->NewNode(
1190 higherByte = graph()->NewNode(
1193 result = graph()->NewNode(m->Word64Or(), result, lowerByte);
1194 result = graph()->NewNode(m->Word64Or(), result, higherByte);
1196 shiftLower = graph()->NewNode(m->Word32Shl(), value,
1198 shiftHigher = graph()->NewNode(m->Word32Shr(), value,
1200 lowerByte = graph()->NewNode(
1204 higherByte = graph()->NewNode(
1207 result = graph()->NewNode(m->Word32Or(), result, lowerByte);
1208 result = graph()->NewNode(m->Word32Or(), result, higherByte);
1216 result = graph()->NewNode(m->BitcastInt64ToFloat64(), result);
1219 result = graph()->NewNode(m->BitcastInt32ToFloat32(), result);
1242 value = graph()->NewNode(m->BitcastFloat64ToInt64(), node);
1249 value = graph()->NewNode(m->BitcastFloat32ToInt32(), node);
1275 graph()->NewNode(m->Word32ReverseBytes(),
1276 graph()->NewNode(m->Word32Shl(), value,
1280 result = graph()->NewNode(m->Word32ReverseBytes(), value);
1283 result = graph()->NewNode(m->Word64ReverseBytes(), value);
1288 byte_reversed_lanes[lane] = graph()->NewNode(
1290 graph()->NewNode(mcgraph()->machine()->I32x4ExtractLane(lane),
1296 graph()->NewNode(mcgraph()->machine()->S128And(), value, value);
1300 graph()->NewNode(mcgraph()->machine()->I32x4ReplaceLane(3 - lane),
1321 shiftLower = graph()->NewNode(m->Word64Shl(), value,
1323 shiftHigher = graph()->NewNode(m->Word64Shr(), value,
1325 lowerByte = graph()->NewNode(
1329 higherByte = graph()->NewNode(
1332 result = graph()->NewNode(m->Word64Or(), result, lowerByte);
1333 result = graph()->NewNode(m->Word64Or(), result, higherByte);
1335 shiftLower = graph()->NewNode(m->Word32Shl(), value,
1337 shiftHigher = graph()->NewNode(m->Word32Shr(), value,
1339 lowerByte = graph()->NewNode(
1343 higherByte = graph()->NewNode(
1346 result = graph()->NewNode(m->Word32Or(), result, lowerByte);
1347 result = graph()->NewNode(m->Word32Or(), result, higherByte);
1355 result = graph()->NewNode(m->BitcastInt64ToFloat64(), result);
1358 result = graph()->NewNode(m->BitcastInt32ToFloat32(), result);
1376 result = graph()->NewNode(
1378 graph()->NewNode(m->Word64Shl(),
1379 graph()->NewNode(m->ChangeInt32ToInt64(), result),
1384 result = graph()->NewNode(
1386 graph()->NewNode(m->Word32Shl(), result, shiftBitCount),
1421 Node* high_word_left = graph()->NewNode(m->Float64ExtractHighWord32(), left);
1423 graph()->NewNode(m->Float64ExtractHighWord32(), right);
1431 return graph()->NewNode(m->Float64InsertHighWord32(), left, new_high_word);
1649 return builder->graph()->NewNode(builder->mcgraph()->common()->Projection(1),
1650 trunc, builder->graph()->start());
1679 converted_value = graph()->NewNode(conv_op, trunc);
1681 trunc = graph()->NewNode(conv_op, input);
1682 converted_value = graph()->NewNode(mcgraph()->common()->Projection(0),
1683 trunc, graph()->start());
1697 Diamond tl_d(graph(), mcgraph()->common(), test, BranchHint::kFalse);
1700 Diamond nan_d(graph(), mcgraph()->common(), nan_test, BranchHint::kFalse);
1703 Diamond sat_d(graph(), mcgraph()->common(), neg_test, BranchHint::kNone);
1715 input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
1716 return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
1722 return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
1728 input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
1729 return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
1735 return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
1741 graph()->NewNode(mcgraph()->machine()->StackSlot(input_type));
1745 SetEffect(graph()->NewNode(store_op, stack_slot_param,
1752 Node* function = graph()->NewNode(mcgraph()->common()->ExternalConstant(ref));
1866 graph()->NewNode(mcgraph()->machine()->StackSlot(stack_slot_bytes));
1870 SetEffect(graph()->NewNode(store_op, stack_slot, mcgraph()->Int32Constant(0),
1873 Node* function = graph()->NewNode(mcgraph()->common()->ExternalConstant(ref));
1876 SetEffect(graph()->NewNode(store_op, stack_slot,
1885 return SetEffect(graph()->NewNode(mcgraph()->machine()->Load(type),
1921 graph()->NewNode(mcgraph()->machine()->StackSlot(stack_slot_size));
1924 SetEffect(graph()->NewNode(store_op, stack_slot, mcgraph()->Int32Constant(0),
1928 Node* function = graph()->NewNode(mcgraph()->common()->ExternalConstant(ref));
1930 return SetEffect(graph()->NewNode(mcgraph()->machine()->Load(result_type),
1968 graph()->NewNode(mcgraph()->machine()->StackSlot(stack_slot_size));
1971 SetEffect(graph()->NewNode(store_op, stack_slot, Int32Constant(0), input,
1976 graph()->NewNode(mcgraph()->common()->ExternalConstant(call_ref));
1980 return SetEffect(graph()->NewNode(mcgraph()->machine()->Load(int_ty),
1985 Diamond tl_d(graph(), mcgraph()->common(), test, BranchHint::kFalse);
1988 Diamond nan_d(graph(), mcgraph()->common(), nan_test, BranchHint::kFalse);
1991 Diamond sat_d(graph(), mcgraph()->common(), neg_test, BranchHint::kNone);
1996 SetEffect(graph()->NewNode(mcgraph()->machine()->Load(int_ty), stack_slot,
2019 SetControl(graph()->NewNode(mcgraph()->common()->Call(call_descriptor),
2054 value = graph()->NewNode(m->BitcastFloat32ToInt32(), value);
2060 value = graph()->NewNode(m->BitcastFloat64ToInt64(), value);
2063 Node* upper32 = graph()->NewNode(
2067 Node* lower32 = graph()->NewNode(m->TruncateInt64ToInt32(), value);
2085 graph()->NewNode(machine->Word32Shr(), value, Int32Constant(16))),
2092 BuildChangeUint31ToSmi(graph()->NewNode(machine->Word32And(), value,
2105 upper = graph()->NewNode(machine->Word32Shl(), upper, Int32Constant(16));
2108 Node* value = graph()->NewNode(machine->Word32Or(), upper, lower);
2187 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(-1)),
2192 SetControl(graph()->NewNode(mcgraph()->common()->Merge(2), denom_is_not_m1,
2197 return graph()->NewNode(m->Int32Div(), left, right, Control());
2207 graph(), mcgraph()->common(),
2208 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(-1)),
2213 graph()->NewNode(m->Int32Mod(), left, right, d.if_false));
2219 return graph()->NewNode(m->Uint32Div(), left, right,
2226 return graph()->NewNode(m->Uint32Mod(), left, right,
2239 return graph()->NewNode(m->Int32Sub(), mcgraph()->Int32Constant(0), left);
2241 return graph()->NewNode(m->Int32Div(), left, right, Control());
2247 return graph()->NewNode(m->Int32Div(), left, right, graph()->start());
2252 graph(), mcgraph()->common(),
2253 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(0)),
2258 graph(), mcgraph()->common(),
2259 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(-1)),
2262 Node* div = graph()->NewNode(m->Int32Div(), left, right, z.if_false);
2264 graph()->NewNode(m->Int32Sub(), mcgraph()->Int32Constant(0), left);
2281 return graph()->NewNode(m->Int32Mod(), left, right, Control());
2309 Node* check0 = graph()->NewNode(m->Int32LessThan(), zero, right);
2311 graph()->NewNode(c->Branch(BranchHint::kTrue), check0, graph()->start());
2313 Node* if_true0 = graph()->NewNode(c->IfTrue(), branch0);
2316 Node* msk = graph()->NewNode(m->Int32Add(), right, minus_one);
2318 Node* check1 = graph()->NewNode(m->Word32And(), right, msk);
2319 Node* branch1 = graph()->NewNode(c->Branch(), check1, if_true0);
2321 Node* if_true1 = graph()->NewNode(c->IfTrue(), branch1);
2322 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2324 Node* if_false1 = graph()->NewNode(c->IfFalse(), branch1);
2327 Node* check2 = graph()->NewNode(m->Int32LessThan(), left, zero);
2329 graph()->NewNode(c->Branch(BranchHint::kFalse), check2, if_false1);
2331 Node* if_true2 = graph()->NewNode(c->IfTrue(), branch2);
2332 Node* true2 = graph()->NewNode(
2334 graph()->NewNode(m->Word32And(),
2335 graph()->NewNode(m->Int32Sub(), zero, left), msk));
2337 Node* if_false2 = graph()->NewNode(c->IfFalse(), branch2);
2338 Node* false2 = graph()->NewNode(m->Word32And(), left, msk);
2340 if_false1 = graph()->NewNode(merge_op, if_true2, if_false2);
2341 false1 = graph()->NewNode(phi_op, true2, false2, if_false1);
2344 if_true0 = graph()->NewNode(merge_op, if_true1, if_false1);
2345 true0 = graph()->NewNode(phi_op, true1, false1, if_true0);
2348 Node* if_false0 = graph()->NewNode(c->IfFalse(), branch0);
2351 Node* check1 = graph()->NewNode(m->Int32LessThan(), right, minus_one);
2353 graph()->NewNode(c->Branch(BranchHint::kTrue), check1, if_false0);
2355 Node* if_true1 = graph()->NewNode(c->IfTrue(), branch1);
2356 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2358 Node* if_false1 = graph()->NewNode(c->IfFalse(), branch1);
2361 if_false0 = graph()->NewNode(merge_op, if_true1, if_false1);
2362 false0 = graph()->NewNode(phi_op, true1, false1, if_false0);
2365 Node* merge0 = graph()->NewNode(merge_op, if_true0, if_false0);
2366 return graph()->NewNode(phi_op, true0, false0, merge0);
2374 return graph()->NewNode(m->Uint32Div(), left, right, graph()->start());
2379 graph(), mcgraph()->common(),
2380 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(0)),
2384 graph()->NewNode(mcgraph()->machine()->Uint32Div(), left, right,
2393 graph(), mcgraph()->common(),
2394 graph()->NewNode(m->Word32Equal(), right, mcgraph()->Int32Constant(0)),
2397 Node* rem = graph()->NewNode(mcgraph()->machine()->Uint32Mod(), left, right,
2413 BranchExpectFalse(graph()->NewNode(mcgraph()->machine()->Word64Equal(), right,
2420 SetControl(graph()->NewNode(mcgraph()->common()->Merge(2), denom_is_not_m1,
2425 return graph()->NewNode(mcgraph()->machine()->Int64Div(), left, right,
2436 Diamond d(mcgraph()->graph(), mcgraph()->common(),
2437 graph()->NewNode(mcgraph()->machine()->Word64Equal(), right,
2442 Node* rem = graph()->NewNode(mcgraph()->machine()->Int64Mod(), left, right,
2455 return graph()->NewNode(mcgraph()->machine()->Uint64Div(), left, right,
2464 return graph()->NewNode(mcgraph()->machine()->Uint64Mod(), left, right,
2474 graph()->NewNode(mcgraph()->machine()->StackSlot(2 * sizeof(double)));
2478 SetEffect(graph()->NewNode(store_op, stack_slot, mcgraph()->Int32Constant(0),
2480 SetEffect(graph()->NewNode(store_op, stack_slot,
2487 Node* function = graph()->NewNode(mcgraph()->common()->ExternalConstant(ref));
2492 return SetEffect(graph()->NewNode(mcgraph()->machine()->Load(result_type),
2508 return SetEffect(graph()->NewNode(op, arraysize(call_args), call_args));
2539 Node* call = SetEffect(graph()->NewNode(op, static_cast<int>(count), args));
2553 (*rets)[i] = graph()->NewNode(mcgraph()->common()->Projection(i), call,
2554 graph()->start());
2572 Node* target_node = SetEffect(graph()->NewNode(
2590 graph()->NewNode(mcgraph()->machine()->IntAdd(), imported_instances,
2592 Node* func_index_times_pointersize = graph()->NewNode(
2596 graph()->NewNode(mcgraph()->machine()->Load(MachineType::TaggedPointer()),
2604 Node* target_node = SetEffect(graph()->NewNode(
2646 Node* in_bounds = graph()->NewNode(machine->Uint32LessThan(), key, ift_size);
2653 graph()->NewNode(machine->Word32Xor(), key, Int32Constant(-1));
2654 Node* masked_diff = graph()->NewNode(
2656 graph()->NewNode(machine->Int32Sub(), key, ift_size), neg_key);
2658 graph()->NewNode(machine->Word32Sar(), masked_diff, Int32Constant(31));
2659 key = graph()->NewNode(machine->Word32And(), key, mask);
2668 graph()->NewNode(machine->Word32Shl(), key, Int32Constant(2)));
2671 SetEffect(graph()->NewNode(machine->Load(MachineType::Int32()),
2673 Node* sig_match = graph()->NewNode(machine->WordEqual(), loaded_sig,
2683 scaled_key = graph()->NewNode(machine->Word32Shl(), key,
2687 SetEffect(graph()->NewNode(machine->Load(MachineType::Pointer()),
2691 Node* target_instance = SetEffect(graph()->NewNode(
2693 graph()->NewNode(machine->IntAdd(), ift_instances, scaled_key),
2747 value = graph()->NewNode(mcgraph()->machine()->ChangeInt32ToInt64(), value);
2754 return graph()->NewNode(mcgraph()->machine()->WordShl(), value,
2759 return graph()->NewNode(mcgraph()->machine()->WordShl(),
2768 value = graph()->NewNode(mcgraph()->machine()->WordSar(), value,
2772 graph()->NewNode(mcgraph()->machine()->TruncateInt64ToInt32(), value);
2782 instance_cache->mem_start = SetEffect(graph()->NewNode(
2788 instance_cache->mem_size = SetEffect(graph()->NewNode(
2795 instance_cache->mem_mask = SetEffect(graph()->NewNode(
2809 instance_cache->field = graph()->NewNode(mcgraph()->common()->Phi(rep, 1), \
2827 to->field = graph()->NewNode(mcgraph()->common()->Phi(rep, 2), 3, vals); \
2864 return graph()->NewNode(mcgraph()->common()->Phi(rep, count), count + 1,
2894 imported_mutable_globals_ = graph()->NewNode(
2899 graph()->start(), graph()->start());
2901 *base_node = SetEffect(graph()->NewNode(
2911 // start per graph, which means it can be placed anywhere by the
2916 // possible to express in the graph, and would essentially constitute a
2918 globals_start_ = graph()->NewNode(
2922 graph()->start(), graph()->start());
2929 *base_node = graph()->NewNode(mcgraph()->machine()->IntAdd(), *base_node,
2941 return graph()->NewNode(mcgraph()->machine()->IntAdd(), mem_start,
2952 graph()->NewNode(mcgraph()->machine()->WordShr(), mem_size,
2956 graph()->NewNode(mcgraph()->machine()->TruncateInt64ToInt32(), result);
2993 return SetEffect(mcgraph()->graph()->NewNode(
3011 Node* load = SetEffect(graph()->NewNode(mcgraph()->machine()->Load(mem_type),
3034 graph()->NewNode(op, base, offset, val, Effect(), Control()));
3045 graph()->NewNode(mcgraph()->machine()->IntAdd(), MemBuffer(offset),
3051 graph()->NewNode(mcgraph()->machine()->WordAnd(), effective_address,
3054 graph()->NewNode(mcgraph()->machine()->Word32Equal(), cond,
3096 Node* cond = graph()->NewNode(m->UintLessThan(), end_offset_node, mem_size);
3114 graph()->NewNode(m->IntSub(), mem_size, end_offset_node);
3117 Node* cond = graph()->NewNode(m->UintLessThan(), index, effective_size);
3124 index = graph()->NewNode(m->WordAnd(), index, mem_mask);
3157 Node* info = graph()->NewNode(
3160 Node* address = graph()->NewNode(mcgraph()->machine()->Int32Add(),
3163 SetEffect(graph()->NewNode(
3196 load = graph()->NewNode(mcgraph()->machine()->ProtectedLoad(memtype),
3200 load = graph()->NewNode(mcgraph()->machine()->Load(memtype),
3206 load = graph()->NewNode(mcgraph()->machine()->UnalignedLoad(memtype),
3221 load = graph()->NewNode(mcgraph()->machine()->ChangeInt32ToInt64(), load);
3225 graph()->NewNode(mcgraph()->machine()->ChangeUint32ToUint64(), load);
3254 graph()->NewNode(mcgraph()->machine()->ProtectedStore(mem_rep),
3260 graph()->NewNode(mcgraph()->machine()->Store(rep), MemBuffer(offset),
3268 graph()->NewNode(mcgraph()->machine()->UnalignedStore(rep),
3315 graph(), mcgraph()->common(),
3316 graph()->NewNode(mcgraph()->machine()->UintLessThan(), index, mem_size),
3324 index = graph()->NewNode(mcgraph()->machine()->WordAnd(), index, mem_mask);
3327 Node* load = graph()->NewNode(mcgraph()->machine()->Load(type), mem_start,
3343 return graph()->NewNode(mcgraph()->machine()->ChangeUint32ToUint64(), node);
3359 graph(), mcgraph()->common(),
3360 graph()->NewNode(mcgraph()->machine()->Uint32LessThan(), index, mem_size),
3369 graph()->NewNode(mcgraph()->machine()->Word32And(), index, mem_mask);
3375 Node* store = graph()->NewNode(store_op, mem_start, index, val, Effect(),
3386 Graph* WasmGraphBuilder::graph() { return mcgraph()->graph(); }
3406 Int64Lowering r(mcgraph()->graph(), mcgraph()->machine(), mcgraph()->common(),
3426 return graph()->NewNode(mcgraph()->machine()->S128Zero());
3433 return graph()->NewNode(mcgraph()->machine()->F32x4Splat(), inputs[0]);
3435 return graph()->NewNode(mcgraph()->machine()->F32x4SConvertI32x4(),
3438 return graph()->NewNode(mcgraph()->machine()->F32x4UConvertI32x4(),
3441 return graph()->NewNode(mcgraph()->machine()->F32x4Abs(), inputs[0]);
3443 return graph()->NewNode(mcgraph()->machine()->F32x4Neg(), inputs[0]);
3445 return graph()->NewNode(mcgraph()->machine()->F32x4RecipApprox(),
3448 return graph()->NewNode(mcgraph()->machine()->F32x4RecipSqrtApprox(),
3451 return graph()->NewNode(mcgraph()->machine()->F32x4Add(), inputs[0],
3454 return graph()->NewNode(mcgraph()->machine()->F32x4AddHoriz(), inputs[0],
3457 return graph()->NewNode(mcgraph()->machine()->F32x4Sub(), inputs[0],
3460 return graph()->NewNode(mcgraph()->machine()->F32x4Mul(), inputs[0],
3463 return graph()->NewNode(mcgraph()->machine()->F32x4Min(), inputs[0],
3466 return graph()->NewNode(mcgraph()->machine()->F32x4Max(), inputs[0],
3469 return graph()->NewNode(mcgraph()->machine()->F32x4Eq(), inputs[0],
3472 return graph()->NewNode(mcgraph()->machine()->F32x4Ne(), inputs[0],
3475 return graph()->NewNode(mcgraph()->machine()->F32x4Lt(), inputs[0],
3478 return graph()->NewNode(mcgraph()->machine()->F32x4Le(), inputs[0],
3481 return graph()->NewNode(mcgraph()->machine()->F32x4Lt(), inputs[1],
3484 return graph()->NewNode(mcgraph()->machine()->F32x4Le(), inputs[1],
3487 return graph()->NewNode(mcgraph()->machine()->I32x4Splat(), inputs[0]);
3489 return graph()->NewNode(mcgraph()->machine()->I32x4SConvertF32x4(),
3492 return graph()->NewNode(mcgraph()->machine()->I32x4UConvertF32x4(),
3495 return graph()->NewNode(mcgraph()->machine()->I32x4SConvertI16x8Low(),
3498 return graph()->NewNode(mcgraph()->machine()->I32x4SConvertI16x8High(),
3501 return graph()->NewNode(mcgraph()->machine()->I32x4Neg(), inputs[0]);
3503 return graph()->NewNode(mcgraph()->machine()->I32x4Add(), inputs[0],
3506 return graph()->NewNode(mcgraph()->machine()->I32x4AddHoriz(), inputs[0],
3509 return graph()->NewNode(mcgraph()->machine()->I32x4Sub(), inputs[0],
3512 return graph()->NewNode(mcgraph()->machine()->I32x4Mul(), inputs[0],
3515 return graph()->NewNode(mcgraph()->machine()->I32x4MinS(), inputs[0],
3518 return graph()->NewNode(mcgraph()->machine()->I32x4MaxS(), inputs[0],
3521 return graph()->NewNode(mcgraph()->machine()->I32x4Eq(), inputs[0],
3524 return graph()->NewNode(mcgraph()->machine()->I32x4Ne(), inputs[0],
3527 return graph()->NewNode(mcgraph()->machine()->I32x4GtS(), inputs[1],
3530 return graph()->NewNode(mcgraph()->machine()->I32x4GeS(), inputs[1],
3533 return graph()->NewNode(mcgraph()->machine()->I32x4GtS(), inputs[0],
3536 return graph()->NewNode(mcgraph()->machine()->I32x4GeS(), inputs[0],
3539 return graph()->NewNode(mcgraph()->machine()->I32x4UConvertI16x8Low(),
3542 return graph()->NewNode(mcgraph()->machine()->I32x4UConvertI16x8High(),
3545 return graph()->NewNode(mcgraph()->machine()->I32x4MinU(), inputs[0],
3548 return graph()->NewNode(mcgraph()->machine()->I32x4MaxU(), inputs[0],
3551 return graph()->NewNode(mcgraph()->machine()->I32x4GtU(), inputs[1],
3554 return graph()->NewNode(mcgraph()->machine()->I32x4GeU(), inputs[1],
3557 return graph()->NewNode(mcgraph()->machine()->I32x4GtU(), inputs[0],
3560 return graph()->NewNode(mcgraph()->machine()->I32x4GeU(), inputs[0],
3563 return graph()->NewNode(mcgraph()->machine()->I16x8Splat(), inputs[0]);
3565 return graph()->NewNode(mcgraph()->machine()->I16x8SConvertI8x16Low(),
3568 return graph()->NewNode(mcgraph()->machine()->I16x8SConvertI8x16High(),
3571 return graph()->NewNode(mcgraph()->machine()->I16x8Neg(), inputs[0]);
3573 return graph()->NewNode(mcgraph()->machine()->I16x8SConvertI32x4(),
3576 return graph()->NewNode(mcgraph()->machine()->I16x8Add(), inputs[0],
3579 return graph()->NewNode(mcgraph()->machine()->I16x8AddSaturateS(),
3582 return graph()->NewNode(mcgraph()->machine()->I16x8AddHoriz(), inputs[0],
3585 return graph()->NewNode(mcgraph()->machine()->I16x8Sub(), inputs[0],
3588 return graph()->NewNode(mcgraph()->machine()->I16x8SubSaturateS(),
3591 return graph()->NewNode(mcgraph()->machine()->I16x8Mul(), inputs[0],
3594 return graph()->NewNode(mcgraph()->machine()->I16x8MinS(), inputs[0],
3597 return graph()->NewNode(mcgraph()->machine()->I16x8MaxS(), inputs[0],
3600 return graph()->NewNode(mcgraph()->machine()->I16x8Eq(), inputs[0],
3603 return graph()->NewNode(mcgraph()->machine()->I16x8Ne(), inputs[0],
3606 return graph()->NewNode(mcgraph()->machine()->I16x8GtS(), inputs[1],
3609 return graph()->NewNode(mcgraph()->machine()->I16x8GeS(), inputs[1],
3612 return graph()->NewNode(mcgraph()->machine()->I16x8GtS(), inputs[0],
3615 return graph()->NewNode(mcgraph()->machine()->I16x8GeS(), inputs[0],
3618 return graph()->NewNode(mcgraph()->machine()->I16x8UConvertI8x16Low(),
3621 return graph()->NewNode(mcgraph()->machine()->I16x8UConvertI8x16High(),
3624 return graph()->NewNode(mcgraph()->machine()->I16x8UConvertI32x4(),
3627 return graph()->NewNode(mcgraph()->machine()->I16x8AddSaturateU(),
3630 return graph()->NewNode(mcgraph()->machine()->I16x8SubSaturateU(),
3633 return graph()->NewNode(mcgraph()->machine()->I16x8MinU(), inputs[0],
3636 return graph()->NewNode(mcgraph()->machine()->I16x8MaxU(), inputs[0],
3639 return graph()->NewNode(mcgraph()->machine()->I16x8GtU(), inputs[1],
3642 return graph()->NewNode(mcgraph()->machine()->I16x8GeU(), inputs[1],
3645 return graph()->NewNode(mcgraph()->machine()->I16x8GtU(), inputs[0],
3648 return graph()->NewNode(mcgraph()->machine()->I16x8GeU(), inputs[0],
3651 return graph()->NewNode(mcgraph()->machine()->I8x16Splat(), inputs[0]);
3653 return graph()->NewNode(mcgraph()->machine()->I8x16Neg(), inputs[0]);
3655 return graph()->NewNode(mcgraph()->machine()->I8x16SConvertI16x8(),
3658 return graph()->NewNode(mcgraph()->machine()->I8x16Add(), inputs[0],
3661 return graph()->NewNode(mcgraph()->machine()->I8x16AddSaturateS(),
3664 return graph()->NewNode(mcgraph()->machine()->I8x16Sub(), inputs[0],
3667 return graph()->NewNode(mcgraph()->machine()->I8x16SubSaturateS(),
3670 return graph()->NewNode(mcgraph()->machine()->I8x16Mul(), inputs[0],
3673 return graph()->NewNode(mcgraph()->machine()->I8x16MinS(), inputs[0],
3676 return graph()->NewNode(mcgraph()->machine()->I8x16MaxS(), inputs[0],
3679 return graph()->NewNode(mcgraph()->machine()->I8x16Eq(), inputs[0],
3682 return graph()->NewNode(mcgraph()->machine()->I8x16Ne(), inputs[0],
3685 return graph()->NewNode(mcgraph()->machine()->I8x16GtS(), inputs[1],
3688 return graph()->NewNode(mcgraph()->machine()->I8x16GeS(), inputs[1],
3691 return graph()->NewNode(mcgraph()->machine()->I8x16GtS(), inputs[0],
3694 return graph()->NewNode(mcgraph()->machine()->I8x16GeS(), inputs[0],
3697 return graph()->NewNode(mcgraph()->machine()->I8x16UConvertI16x8(),
3700 return graph()->NewNode(mcgraph()->machine()->I8x16AddSaturateU(),
3703 return graph()->NewNode(mcgraph()->machine()->I8x16SubSaturateU(),
3706 return graph()->NewNode(mcgraph()->machine()->I8x16MinU(), inputs[0],
3709 return graph()->NewNode(mcgraph()->machine()->I8x16MaxU(), inputs[0],
3712 return graph()->NewNode(mcgraph()->machine()->I8x16GtU(), inputs[1],
3715 return graph()->NewNode(mcgraph()->machine()->I8x16GeU(), inputs[1],
3718 return graph()->NewNode(mcgraph()->machine()->I8x16GtU(), inputs[0],
3721 return graph()->NewNode(mcgraph()->machine()->I8x16GeU(), inputs[0],
3724 return graph()->NewNode(mcgraph()->machine()->S128And(), inputs[0],
3727 return graph()->NewNode(mcgraph()->machine()->S128Or(), inputs[0],
3730 return graph()->NewNode(mcgraph()->machine()->S128Xor(), inputs[0],
3733 return graph()->NewNode(mcgraph()->machine()->S128Not(), inputs[0]);
3735 return graph()->NewNode(mcgraph()->machine()->S128Select(), inputs[0],
3738 return graph()->NewNode(mcgraph()->machine()->S1x4AnyTrue(), inputs[0]);
3740 return graph()->NewNode(mcgraph()->machine()->S1x4AllTrue(), inputs[0]);
3742 return graph()->NewNode(mcgraph()->machine()->S1x8AnyTrue(), inputs[0]);
3744 return graph()->NewNode(mcgraph()->machine()->S1x8AllTrue(), inputs[0]);
3746 return graph()->NewNode(mcgraph()->machine()->S1x16AnyTrue(), inputs[0]);
3748 return graph()->NewNode(mcgraph()->machine()->S1x16AllTrue(), inputs[0]);
3759 return graph()->NewNode(mcgraph()->machine()->F32x4ExtractLane(lane),
3762 return graph()->NewNode(mcgraph()->machine()->F32x4ReplaceLane(lane),
3765 return graph()->NewNode(mcgraph()->machine()->I32x4ExtractLane(lane),
3768 return graph()->NewNode(mcgraph()->machine()->I32x4ReplaceLane(lane),
3771 return graph()->NewNode(mcgraph()->machine()->I16x8ExtractLane(lane),
3774 return graph()->NewNode(mcgraph()->machine()->I16x8ReplaceLane(lane),
3777 return graph()->NewNode(mcgraph()->machine()->I8x16ExtractLane(lane),
3780 return graph()->NewNode(mcgraph()->machine()->I8x16ReplaceLane(lane),
3792 return graph()->NewNode(mcgraph()->machine()->I32x4Shl(shift), inputs[0]);
3794 return graph()->NewNode(mcgraph()->machine()->I32x4ShrS(shift),
3797 return graph()->NewNode(mcgraph()->machine()->I32x4ShrU(shift),
3800 return graph()->NewNode(mcgraph()->machine()->I16x8Shl(shift), inputs[0]);
3802 return graph()->NewNode(mcgraph()->machine()->I16x8ShrS(shift),
3805 return graph
3808 return graph()->NewNode(mcgraph()->machine()->I8x16Shl(shift), inputs[0]);
3810 return graph()->NewNode(mcgraph()->machine()->I8x16ShrS(shift),
3813 return graph()->NewNode(mcgraph()->machine()->I8x16ShrU(shift),
3823 return graph()->NewNode(mcgraph()->machine()->S8x16Shuffle(shuffle),
3908 node = graph()->NewNode( \
3921 node = graph()->NewNode( \
3935 node = graph()->NewNode( \
3948 node = graph()->NewNode( \
3973 node, NodeOrigin("wasm graph creation", "n/a",
3985 decorator_ = new (graph()->zone()) WasmDecorator(node_origins, decoder);
3986 graph()->AddDecorator(decorator_);
3991 graph()->RemoveDecorator(decorator_);
4044 Node* heap_number = graph()->NewNode(allocate_heap_number_operator_.get(),
4047 graph()->NewNode(machine->Store(StoreRepresentation(
4055 return graph()->NewNode(mcgraph()->machine()->ChangeInt32ToFloat64(),
4060 return graph()->NewNode(mcgraph()->machine()->WordAnd(), value,
4065 return SetEffect(graph()->NewNode(
4085 Node* add = graph()->NewNode(machine->Int32AddWithOverflow(), value, value,
4086 graph()->start());
4088 Node* ovf = graph()->NewNode(common->Projection(1), add, graph()->start());
4090 graph()->NewNode(common->Branch(BranchHint::kFalse), ovf, control);
4092 Node* if_true = graph()->NewNode(common->IfTrue(), branch);
4094 graph()->NewNode(machine->ChangeInt32ToFloat64(), value), if_true);
4097 Node* if_false = graph()->NewNode(common->IfFalse(), branch);
4098 Node* vfalse = graph()->NewNode(common->Projection(0), add, if_false);
4102 SetControl(graph()->NewNode(common->Merge(2), if_true, if_false));
4103 SetEffect(graph()->NewNode(common->EffectPhi(2), etrue, effect, merge));
4104 return graph()->NewNode(common->Phi(MachineRepresentation::kTagged, 2),
4125 Node* value32 = graph()->NewNode(machine->RoundFloat64ToInt32(), value);
4126 Node* check_i32 = graph()->NewNode(
4128 graph()->NewNode(machine->ChangeInt32ToFloat64(), value32));
4129 Node* branch_i32 = graph()->NewNode(common->Branch(), check_i32, control);
4131 Node* if_i32 = graph()->NewNode(common->IfTrue(), branch_i32);
4132 Node* if_not_i32 = graph()->NewNode(common->IfFalse(), branch_i32);
4135 Node* check_zero = graph()->NewNode(machine->Word32Equal(), value32,
4137 Node* branch_zero = graph()->NewNode(common->Branch(BranchHint::kFalse),
4140 Node* if_zero = graph()->NewNode(common->IfTrue(), branch_zero);
4141 Node* if_not_zero = graph()->NewNode(common->IfFalse(), branch_zero);
4144 Node* check_negative = graph()->NewNode(
4146 graph()->NewNode(machine->Float64ExtractHighWord32(), value),
4148 Node* branch_negative = graph()->NewNode(common->Branch(BranchHint::kFalse),
4151 Node* if_negative = graph()->NewNode(common->IfTrue(), branch_negative);
4153 graph()->NewNode(common->IfFalse(), branch_negative);
4157 graph()->NewNode(common->Merge(2), if_not_zero, if_not_negative);
4158 Node* if_box = graph()->NewNode(common->Merge(2), if_not_i32, if_negative);
4168 Node* smi_tag = graph()->NewNode(machine->Int32AddWithOverflow(), value32,
4172 graph()->NewNode(common->Projection(1), smi_tag, if_smi);
4173 Node* branch_ovf = graph()->NewNode(common->Branch(BranchHint::kFalse),
4176 Node* if_ovf = graph()->NewNode(common->IfTrue(), branch_ovf);
4177 if_box = graph()->NewNode(common->Merge(2), if_ovf, if_box);
4179 if_smi = graph()->NewNode(common->IfFalse(), branch_ovf);
4180 vsmi = graph()->NewNode(common->Projection(0), smi_tag, if_smi);
4189 SetControl(graph()->NewNode(common->Merge(2), if_smi, if_box));
4190 SetEffect(graph()->NewNode(common->EffectPhi(2), effect, ebox, merge));
4191 return graph()->NewNode(common->Phi(MachineRepresentation::kTagged, 2),
4217 graph()->NewNode(mcgraph()->common()->Call(call_descriptor), stub_code,
4237 Diamond is_heap_object(graph(), common, check_heap_object,
4247 graph()->NewNode(machine->WordEqual(), value, undefined_node);
4250 Diamond is_undefined(graph(), common, check_undefined, BranchHint::kFalse);
4282 node = graph()->NewNode(mcgraph()->machine()->ChangeFloat32ToFloat64(),
4310 num = graph()->NewNode(mcgraph()->machine()->TruncateFloat64ToWord32(),
4318 num = graph()->NewNode(mcgraph()->machine()->TruncateFloat64ToFloat32(),
4332 graph()->NewNode(mcgraph()->common()->ExternalConstant(
4335 Node* thread_in_wasm_flag_address = SetEffect(graph()->NewNode(
4339 SetEffect(graph()->NewNode(
4347 Node* shared = SetEffect(graph()->NewNode(
4352 return SetEffect(graph()->NewNode(
4360 return SetEffect(graph()->NewNode(
4368 Node* function_index_smi = SetEffect(graph()->NewNode(
4378 Node* jump_table_offset_smi = SetEffect(graph()->NewNode(
4395 graph()->NewNode(jsgraph()->common()->Parameter(
4397 graph()->start());
4398 Node* js_context = graph()->NewNode(
4401 graph()->start());
4449 Node* jump_table_slot = graph()->NewNode(
4503 Node* function_context = SetEffect(graph()->NewNode(
4525 graph()->zone(), false, wasm_count + 1, CallDescriptor::kNoFlags);
4536 call = graph()->NewNode(mcgraph()->common()->Call(call_descriptor),
4567 call = graph()->NewNode(mcgraph()->common()->Call(call_descriptor),
4583 graph()->zone(), CallTrampolineDescriptor{}, wasm_count + 1,
4599 call = graph()->NewNode(mcgraph()->common()->Call(call_descriptor), pos,
4645 : graph()->NewNode(mcgraph()->machine()->StackSlot(
4654 SetEffect(graph()->NewNode(GetSafeStoreOperator(offset, type), arg_buffer,
4679 graph()->NewNode(mcgraph()->machine()->Load(load_rep), arg_buffer,
4694 Node* code_obj = graph()->NewNode(
4712 graph()->NewNode(GetSafeLoadOperator(offset, type), arg_buffer,
4725 Node* call = SetEffect(graph()->NewNode(
4734 SetEffect(graph()->NewNode(mcgraph()->machine()->Store(store_rep),
4748 Int64Lowering r(mcgraph()->graph(), mcgraph()->machine(),
4773 // Create the Graph.
4776 Graph graph(&zone);
4782 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
4808 StdoutStream{} << "-- Graph after change lowering -- " << std::endl
4809 << AsRPO(graph);
4818 &info, isolate, incoming, &graph, WasmAssemblerOptions());
4846 // Create the Graph
4849 Graph graph(&zone);
4855 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
4861 origin == wasm::kAsmJsOrigin ? new (&zone) SourcePositionTable(&graph)
4885 StdoutStream{} << "-- Graph after change lowering -- " << std::endl
4886 << AsRPO(graph);
4895 &info, isolate, incoming, &graph, AssemblerOptions::Default(isolate),
4921 // Create the Graph
4924 Graph graph(&zone);
4930 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
4957 StdoutStream{} << "-- Wasm interpreter entry graph -- " << std::endl
4958 << AsRPO(graph);
4962 &info, isolate, incoming, &graph, AssemblerOptions::Default(isolate),
4986 Graph graph(&zone);
4992 JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
5028 StdoutStream{} << "-- C Wasm entry graph -- " << std::endl << AsRPO(graph);
5032 &info, isolate, incoming, &graph, AssemblerOptions::Default(isolate));
5063 // Create a TF graph during decoding.
5065 new (mcgraph->zone()) SourcePositionTable(mcgraph->graph());
5135 MachineGraph(new (&graph_zone) Graph(&graph_zone),
5154 NodeOriginTable(mcgraph->graph())
5170 node_count = mcgraph->graph()->NodeCount();
5192 static_cast<int>(mcgraph->graph()->zone()->allocation_size()));