Home | History | Annotate | Download | only in compiler

Lines Matching refs:Node

29 class Node;
39 // Expose {Node} and {Graph} opaquely as {wasm::TFNode} and {wasm::TFGraph}.
40 typedef compiler::Node TFNode;
112 Node* mem_start;
113 Node* mem_size;
114 Node* mem_mask;
131 Node** Buffer(size_t count) {
135 reinterpret_cast<Node**>(zone_->New(new_size * sizeof(Node*)));
144 Node* Error();
145 Node* Start(unsigned params);
146 Node* Param(unsigned index);
147 Node* Loop(Node* entry);
148 Node* Terminate(Node* effect, Node* control);
149 Node* Merge(unsigned count, Node** controls);
150 Node* Phi(wasm::ValueType type, unsigned count, Node** vals, Node* control);
151 Node* CreateOrMergeIntoPhi(MachineRepresentation rep, Node* merge,
152 Node* tnode, Node* fnode);
153 Node* CreateOrMergeIntoEffectPhi(Node* merge, Node* tnode, Node* fnode);
154 Node* EffectPhi(unsigned count, Node** effects, Node* control);
155 Node* RefNull();
156 Node* Uint32Constant(uint32_t value);
157 Node* Int32Constant(int32_t value);
158 Node* Int64Constant(int64_t value);
159 Node* IntPtrConstant(intptr_t value);
160 Node* Float32Constant(float value);
161 Node* Float64Constant(double value);
162 Node* Binop(wasm::WasmOpcode opcode, Node* left, Node* right,
164 Node* Unop(wasm::WasmOpcode opcode, Node* input,
166 Node* GrowMemory(Node* input);
167 Node* Throw(uint32_t tag, const wasm::WasmException* exception,
168 const Vector<Node*> values);
169 Node* Rethrow();
170 Node* ConvertExceptionTagToRuntimeId(uint32_t tag);
171 Node* GetExceptionRuntimeId();
172 Node** GetExceptionValues(const wasm::WasmException* except_decl);
173 bool IsPhiWithMerge(Node* phi, Node* merge);
174 bool ThrowsException(Node* node, Node** if_success, Node** if_exception);
175 void AppendToMerge(Node* merge, Node* from);
176 void AppendToPhi(Node* phi, Node* from);
178 void StackCheck(wasm::WasmCodePosition position, Node** effect = nullptr,
179 Node** control = nullptr);
186 Node* BranchNoHint(Node* cond, Node** true_node, Node** false_node);
187 Node* BranchExpectTrue(Node* cond, Node** true_node, Node** false_node);
188 Node* BranchExpectFalse(Node* cond, Node** true_node, Node** false_node);
190 Node* TrapIfTrue(wasm::TrapReason reason, Node* cond,
192 Node* TrapIfFalse(wasm::TrapReason reason, Node* cond,
194 Node* TrapIfEq32(wasm::TrapReason reason, Node* node, int32_t val,
196 Node* ZeroCheck32(wasm::TrapReason reason, Node* node,
198 Node* TrapIfEq64(wasm::TrapReason reason, Node* node, int64_t val,
200 Node* ZeroCheck64(wasm::TrapReason reason, Node* node,
203 Node* Switch(unsigned count, Node* key);
204 Node* IfValue(int32_t value, Node* sw);
205 Node* IfDefault(Node* sw);
206 Node* Return(unsigned count, Node** nodes);
208 Node* Return(Node* fst, Nodes*... more) {
209 Node* arr[] = {fst, more...};
212 Node* ReturnVoid();
213 Node* Unreachable(wasm::WasmCodePosition position);
215 Node* CallDirect(uint32_t index, Node** args, Node*** rets,
217 Node* CallIndirect(uint32_t index, Node** args, Node*** rets,
220 Node* Invert(Node* node);
225 Node* CurrentMemoryPages();
226 Node* GetGlobal(uint32_t index);
227 Node* SetGlobal(uint32_t index, Node* val);
228 Node* TraceMemoryOperation(bool is_store, MachineRepresentation, Node* index,
230 Node* LoadMem(wasm::ValueType type, MachineType memtype, Node* index,
233 Node* StoreMem(MachineRepresentation mem_rep, Node* index, uint32_t offset,
234 uint32_t alignment, Node* val, wasm::WasmCodePosition position,
236 static void PrintDebugName(Node* node);
238 void set_instance_node(Node* instance_node) {
242 Node* Control() {
246 Node* Effect() {
250 Node* SetControl(Node* node) {
251 *control_ = node;
252 return node;
254 Node* SetEffect(Node* node) {
255 *effect_ = node;
256 return node;
259 void set_control_ptr(Node** control) { this->control_ = control; }
261 void set_effect_ptr(Node** effect) { this->effect_ = effect; }
264 Node** base_node, Node** offset_node);
269 Node* control);
271 WasmInstanceCacheNodes* from, Node* merge);
273 WasmInstanceCacheNodes* from, Node* merge);
285 void SetSourcePosition(Node* node, wasm::WasmCodePosition position);
287 Node* S128Zero();
288 Node* S1x4Zero();
289 Node* S1x8Zero();
290 Node* S1x16Zero();
292 Node* SimdOp(wasm::WasmOpcode opcode, Node* const* inputs);
294 Node* SimdLaneOp(wasm::WasmOpcode opcode, uint8_t lane, Node* const* inputs);
296 Node* SimdShiftOp(wasm::WasmOpcode opcode, uint8_t shift,
297 Node* const* inputs);
299 Node* Simd8x16ShuffleOp(const uint8_t shuffle[16], Node* const* inputs);
301 Node* AtomicOp(wasm::WasmOpcode opcode, Node* const* inputs,
326 Node** control_ = nullptr;
327 Node** effect_ = nullptr;
330 SetOncePointer<Node> instance_node_;
331 SetOncePointer<Node> globals_start_;
332 SetOncePointer<Node> imported_mutable_globals_;
333 SetOncePointer<Node> stack_check_code_node_;
336 Node** cur_buffer_;
338 Node* def_buffer_[kDefaultBufferSize];
349 Node* NoContextConstant();
351 Node* MemBuffer(uint32_t offset);
352 // BoundsCheckMem receives a uint32 {index} node and returns a ptrsize index.
353 Node* BoundsCheckMem(uint8_t access_size, Node* index, uint32_t offset,
355 Node* CheckBoundsAndAlignment(uint8_t access_size, Node* index,
357 Node* Uint32ToUintptr(Node*);
360 Node* BuildChangeEndiannessStore(Node* node, MachineRepresentation rep,
362 Node* BuildChangeEndiannessLoad(Node* node, MachineType type,
365 Node* MaskShiftCount32(Node* node);
366 Node* MaskShiftCount64(Node* node);
369 Node* BuildCCall(MachineSignature* sig, Node* function, Args... args);
370 Node* BuildWasmCall(wasm::FunctionSig* sig, Node** args, Node*** rets,
371 wasm::WasmCodePosition position, Node* instance_node,
373 Node* BuildImportWasmCall(wasm::FunctionSig* sig, Node** args, Node*** rets,
375 Node* BuildImportWasmCall(wasm::FunctionSig* sig, Node** args, Node*** rets,
376 wasm::WasmCodePosition position, Node* func_index);
378 Node* BuildF32CopySign(Node* left, Node* right);
379 Node* BuildF64CopySign(Node* left, Node* right);
381 Node* BuildIntConvertFloat(Node* input, wasm::WasmCodePosition position,
383 Node* BuildI32Ctz(Node* input);
384 Node* BuildI32Popcnt(Node* input);
385 Node* BuildI64Ctz(Node* input);
386 Node* BuildI64Popcnt(Node* input);
387 Node* BuildBitCountingCall(Node* input, ExternalReference ref,
390 Node* BuildCFuncInstruction(ExternalReference ref, MachineType type,
391 Node* input0, Node* input1 = nullptr);
392 Node* BuildF32Trunc(Node* input);
393 Node* BuildF32Floor(Node* input);
394 Node* BuildF32Ceil(Node* input);
395 Node* BuildF32NearestInt(Node* input);
396 Node* BuildF64Trunc(Node* input);
397 Node* BuildF64Floor(Node* input);
398 Node* BuildF64Ceil(Node* input);
399 Node* BuildF64NearestInt(Node* input);
400 Node* BuildI32Rol(Node* left, Node* right);
401 Node* BuildI64Rol(Node* left, Node* right);
403 Node* BuildF64Acos(Node* input);
404 Node* BuildF64Asin(Node* input);
405 Node* BuildF64Pow(Node* left, Node* right);
406 Node* BuildF64Mod(Node* left, Node* right);
408 Node* BuildIntToFloatConversionInstruction(
409 Node* input, ExternalReference ref,
412 Node* BuildF32SConvertI64(Node* input);
413 Node* BuildF32UConvertI64(Node* input);
414 Node* BuildF64SConvertI64(Node* input);
415 Node* BuildF64UConvertI64(Node* input);
417 Node* BuildCcallConvertFloat(Node* input, wasm::WasmCodePosition position,
420 Node* BuildI32DivS(Node* left, Node* right, wasm::WasmCodePosition position);
421 Node* BuildI32RemS(Node* left, Node* right, wasm::WasmCodePosition position);
422 Node* BuildI32DivU(Node* left, Node
423 Node* BuildI32RemU(Node* left, Node* right, wasm::WasmCodePosition position);
425 Node* BuildI64DivS(Node* left, Node* right, wasm::WasmCodePosition position);
426 Node* BuildI64RemS(Node* left, Node* right, wasm::WasmCodePosition position);
427 Node* BuildI64DivU(Node* left, Node* right, wasm::WasmCodePosition position);
428 Node* BuildI64RemU(Node* left, Node* right, wasm::WasmCodePosition position);
429 Node* BuildDiv64Call(Node* left, Node* right, ExternalReference ref,
433 Node* BuildChangeInt32ToIntPtr(Node* value);
434 Node* BuildChangeInt32ToSmi(Node* value);
435 Node* BuildChangeUint31ToSmi(Node* value);
436 Node* BuildSmiShiftBitsConstant();
437 Node* BuildChangeSmiToInt32(Node* value);
439 Node* BuildLoadInstanceFromExportedFunction(Node* closure);
442 Node* BuildI32AsmjsSConvertF32(Node* input);
443 Node* BuildI32AsmjsSConvertF64(Node* input);
444 Node* BuildI32AsmjsUConvertF32(Node* input);
445 Node* BuildI32AsmjsUConvertF64(Node* input);
446 Node* BuildI32AsmjsDivS(Node* left, Node* right);
447 Node* BuildI32AsmjsRemS(Node* left, Node* right);
448 Node* BuildI32AsmjsDivU(Node* left, Node* right);
449 Node* BuildI32AsmjsRemU(Node* left, Node* right);
450 Node* BuildAsmjsLoadMem(MachineType type, Node* index);
451 Node* BuildAsmjsStoreMem(MachineType type, Node* index, Node* val);
454 void BuildEncodeException32BitValue(uint32_t* index, Node* value);
455 Node* BuildDecodeException32BitValue(Node* const* values, uint32_t* index);
457 Node** Realloc(Node* const* buffer, size_t old_count, size_t new_count) {
458 Node** buf = Buffer(new_count);
459 if (buf != buffer) memcpy(buf, buffer, old_count * sizeof(Node*));
469 Node* BuildCallToRuntime(Runtime::FunctionId f, Node** parameters,
472 Node* BuildCallToRuntimeWithContext(Runtime::FunctionId f, Node* js_context,
473 Node** parameters, int parameter_count);
474 Node* BuildCallToRuntimeWithContextFromJS(Runtime::FunctionId f,
475 Node* js_context,
476 Node* const* parameters,