Home | History | Annotate | Download | only in compiler

Lines Matching refs:Node

13 #include "src/compiler/node.h"
62 Node* NullConstant() {
66 Node* UndefinedConstant() {
71 Node* PointerConstant(void* value) {
74 Node* IntPtrConstant(intptr_t value) {
79 Node* Int32Constant(int32_t value) {
82 Node* Int64Constant(int64_t value) {
85 Node* NumberConstant(double value) {
88 Node* Float32Constant(float value) {
91 Node* Float64Constant(double value) {
94 Node* HeapConstant(Handle<HeapObject> object) {
97 Node* BooleanConstant(bool value) {
101 Node* ExternalConstant(ExternalReference address) {
105 Node* Projection(int index, Node* a) {
110 Node* Load(MachineType rep, Node* base) {
113 Node* Load(MachineType rep, Node* base, Node* index) {
116 Node* Store(MachineRepresentation rep, Node* base, Node* value,
120 Node* Store(MachineRepresentation rep, Node* base, Node* index, Node* value,
127 Node* WordAnd(Node* a, Node* b) {
130 Node* WordOr(Node* a, Node* b) { return AddNode(machine()->WordOr(), a, b); }
131 Node* WordXor(Node* a, Node* b) {
134 Node* WordShl(Node* a, Node* b) {
137 Node* WordShr(Node* a, Node* b) {
140 Node* WordSar(Node* a, Node* b) {
143 Node* WordRor(Node* a, Node* b) {
146 Node* WordEqual(Node* a, Node* b) {
149 Node* WordNotEqual(Node* a, Node* b) {
152 Node* WordNot(Node* a) {
159 Node* WordBinaryNot(Node* a) {
167 Node* Word32And(Node* a, Node* b) {
170 Node* Word32Or(Node* a, Node* b) {
173 Node* Word32Xor(Node* a, Node* b) {
176 Node* Word32Shl(Node* a, Node* b) {
179 Node* Word32Shr(Node* a, Node* b) {
182 Node* Word32Sar(Node* a, Node* b) {
185 Node* Word32Ror(Node* a, Node* b) {
188 Node* Word32Clz(Node* a) { return AddNode(machine()->Word32Clz(), a); }
189 Node* Word32Equal(Node* a, Node* b) {
192 Node* Word32NotEqual(Node* a, Node* b) {
195 Node* Word32Not(Node* a) { return Word32Xor(a, Int32Constant(-1)); }
196 Node* Word32BinaryNot(Node* a) { return Word32Equal(a, Int32Constant(0)); }
198 Node* Word64And(Node* a, Node* b) {
201 Node* Word64Or(Node* a, Node* b) {
204 Node* Word64Xor(Node* a, Node* b) {
207 Node* Word64Shl(Node* a, Node* b) {
210 Node* Word64Shr(Node* a, Node* b) {
213 Node* Word64Sar(Node* a, Node* b) {
216 Node* Word64Ror(Node* a, Node* b) {
219 Node* Word64Clz(Node* a) { return AddNode(machine()->Word64Clz(), a); }
220 Node* Word64Equal(Node* a, Node* b) {
223 Node* Word64NotEqual(Node* a, Node* b) {
226 Node* Word64Not(Node* a) { return Word64Xor(a, Int64Constant(-1)); }
227 Node* Word64BinaryNot(Node* a) { return Word64Equal(a, Int64Constant(0)); }
229 Node* Int32Add(Node* a, Node* b) {
232 Node* Int32AddWithOverflow(Node* a, Node* b) {
235 Node* Int32Sub(Node* a, Node* b) {
238 Node* Int32SubWithOverflow(Node* a, Node* b) {
241 Node* Int32Mul(Node* a, Node* b) {
244 Node* Int32MulHigh(Node* a, Node* b) {
247 Node* Int32Div(Node* a, Node* b) {
250 Node* Int32Mod(Node* a, Node* b) {
253 Node* Int32LessThan(Node* a, Node* b) {
256 Node* Int32LessThanOrEqual(Node* a, Node* b) {
259 Node* Uint32Div(Node* a, Node* b) {
262 Node* Uint32LessThan(Node* a, Node* b) {
265 Node* Uint32LessThanOrEqual(Node* a, Node* b) {
268 Node* Uint32Mod(Node* a, Node* b) {
271 Node* Uint32MulHigh(Node* a, Node* b) {
274 Node* Int32GreaterThan(Node* a, Node* b) { return Int32LessThan(b, a); }
275 Node* Int32GreaterThanOrEqual(Node* a, Node* b) {
278 Node* Int32Neg(Node* a) { return Int32Sub(Int32Constant(0), a); }
280 Node* Int64Add(Node* a, Node* b) {
283 Node* Int64AddWithOverflow(Node* a, Node* b) {
286 Node* Int64Sub(Node* a, Node* b) {
289 Node* Int64SubWithOverflow(Node* a, Node* b) {
292 Node* Int64Mul(Node* a, Node* b) {
295 Node* Int64Div(Node* a, Node* b) {
298 Node* Int64Mod(Node* a, Node* b) {
301 Node* Int64Neg(Node* a) { return Int64Sub(Int64Constant(0), a); }
302 Node* Int64LessThan(Node* a, Node* b) {
305 Node* Int64LessThanOrEqual(Node* a, Node* b) {
308 Node* Uint64LessThan(Node* a, Node* b) {
311 Node* Uint64LessThanOrEqual(Node* a, Node* b) {
314 Node* Int64GreaterThan(Node* a, Node* b) { return Int64LessThan(b, a); }
315 Node* Int64GreaterThanOrEqual(Node* a, Node* b) {
318 Node* Uint64Div(Node* a, Node* b) {
321 Node* Uint64Mod(Node* a, Node* b) {
326 Node* IntPtr##name(Node* a, Node* b) { \
342 Node* Float32Add(Node* a, Node* b) {
345 Node* Float32Sub(Node* a, Node* b) {
348 Node* Float32Mul(Node* a, Node* b) {
351 Node* Float32Div(Node* a, Node* b) {
354 Node* Float32Max(Node* a, Node* b) {
357 Node* Float32Min(Node* a, Node* b) {
360 Node* Float32Abs(Node* a) { return AddNode(machine()->Float32Abs(), a); }
361 Node* Float32Sqrt(Node* a) { return AddNode(machine()->Float32Sqrt(), a); }
362 Node* Float32Equal(Node* a, Node* b) {
365 Node* Float32NotEqual(Node* a, Node* b) {
368 Node* Float32LessThan(Node* a, Node* b) {
371 Node* Float32LessThanOrEqual(Node* a, Node* b) {
374 Node* Float32GreaterThan(Node* a, Node* b) { return Float32LessThan(b, a); }
375 Node* Float32GreaterThanOrEqual(Node* a, Node* b) {
379 Node* Float64Add(Node* a, Node* b) {
382 Node* Float64Sub(Node* a, Node* b) {
385 Node* Float64Mul(Node* a, Node* b) {
388 Node* Float64Div(Node* a, Node* b) {
391 Node* Float64Mod(Node* a, Node* b) {
394 Node* Float64Max(Node* a, Node* b) {
397 Node* Float64Min(Node* a, Node* b) {
400 Node* Float64Abs(Node* a) { return AddNode(machine()->Float64Abs(), a); }
401 Node* Float64Sqrt(Node* a) { return AddNode(machine()->Float64Sqrt(), a); }
402 Node* Float64Equal(Node* a, Node* b) {
405 Node* Float64NotEqual(Node* a, Node* b) {
408 Node* Float64LessThan(Node* a, Node* b) {
411 Node* Float64LessThanOrEqual(Node* a, Node* b) {
414 Node* Float64GreaterThan(Node* a, Node* b) { return Float64LessThan(b, a); }
415 Node* Float64GreaterThanOrEqual(Node* a, Node* b) {
420 Node* ChangeFloat32ToFloat64(Node* a) {
423 Node* ChangeInt32ToFloat64(Node* a) {
426 Node* ChangeUint32ToFloat64(Node* a) {
429 Node* ChangeFloat64ToInt32(Node* a) {
432 Node* ChangeFloat64ToUint32(Node* a) {
435 Node* TruncateFloat32ToInt64(Node* a) {
440 Node* TryTruncateFloat32ToInt64(Node* a) {
443 Node* TruncateFloat64ToInt64(Node* a) {
448 Node* TryTruncateFloat64ToInt64(Node* a) {
451 Node* TruncateFloat32ToUint64(Node* a) {
456 Node* TryTruncateFloat32ToUint64(Node* a) {
459 Node* TruncateFloat64ToUint64(Node* a) {
464 Node* TryTruncateFloat64ToUint64(Node* a) {
467 Node* ChangeInt32ToInt64(Node* a) {
470 Node* ChangeUint32ToUint64(Node* a) {
473 NodeNode* a) {
476 Node* TruncateFloat64ToInt32(TruncationMode mode, Node* a) {
479 Node* TruncateInt64ToInt32(Node* a) {
482 Node* RoundInt64ToFloat32(Node* a) {
485 Node* RoundInt64ToFloat64(Node* a) {
488 Node* RoundUint64ToFloat32(Node* a) {
491 Node* RoundUint64ToFloat64(Node* a) {
494 Node* BitcastFloat32ToInt32(Node* a) {
497 Node* BitcastFloat64ToInt64(Node* a) {
500 Node* BitcastInt32ToFloat32(Node* a) {
503 Node* BitcastInt64ToFloat64(Node* a) {
506 Node* Float32RoundDown(Node* a) {
509 Node* Float64RoundDown(Node* a) {
512 Node* Float32RoundUp(Node* a) {
515 Node* Float64RoundUp(Node* a) {
518 Node* Float32RoundTruncate(Node* a) {
521 Node* Float64RoundTruncate(Node* a) {
524 Node* Float64RoundTiesAway(Node* a) {
527 Node* Float32RoundTiesEven(Node* a) {
530 Node* Float64RoundTiesEven(Node* a) {
535 Node* Float64ExtractLowWord32(Node* a) {
538 Node* Float64ExtractHighWord32(Node* a) {
541 Node* Float64InsertLowWord32(Node* a, Node* b) {
544 Node* Float64InsertHighWord32(Node* a, Node* b) {
549 Node* LoadStackPointer() { return AddNode(machine()->LoadStackPointer()); }
550 Node* LoadFramePointer() { return AddNode(machine()->LoadFramePointer()); }
553 Node* Parameter(size_t index);
556 Node* LoadFromPointer(void* address, MachineType rep, int32_t offset = 0) {
559 Node* StoreToPointer(void* address, MachineRepresentation rep, Node* node) {
560 return Store(rep, PointerConstant(address), node, kNoWriteBarrier);
562 Node* StringConstant(const char* string) {
567 Node* CallN(CallDescriptor* desc, Node* function, Node** args);
569 Node* CallNWithFrameState(CallDescriptor* desc, Node* function, Node** args,
570 Node* frame_state);
572 Node* CallRuntime1(Runtime::FunctionId function, Node* arg0, Node* context);
574 Node* CallRuntime2(Runtime::FunctionId function, Node* arg1, Node* arg2,
575 Node* context);
577 Node* CallRuntime4(Runtime::FunctionId function, Node* arg1, Node* arg2,
578 Node* arg3, Node* arg4, Node* context);
580 Node* CallCFunction0(MachineType return_type, Node* function);
582 Node* CallCFunction1(MachineType return_type, MachineType arg0_type,
583 Node* function, Node* arg0);
585 Node* CallCFunction2(MachineType return_type, MachineType arg0_type,
586 MachineType arg1_type, Node* function, Node* arg0,
587 Node* arg1);
589 Node* CallCFunction8(MachineType return_type, MachineType arg0_type,
593 MachineType arg7_type, Node* function, Node* arg0,
594 Node* arg1, Node* arg2, Node* arg3, Node* arg4,
595 Node* arg5, Node* arg6, Node* arg7);
598 Node* TailCallN(CallDescriptor* call_descriptor, Node* function, Node** args);
600 Node* TailCallRuntime1(Runtime::FunctionId function, Node* arg0,
601 Node* context);
603 Node* TailCallRuntime2(Runtime::FunctionId function, Node* arg1, Node* arg2,
604 Node* context);
613 void Branch(Node* condition, RawMachineLabel* true_val,
615 void Switch(Node* index, RawMachineLabel* default_label, int32_t* case_values,
617 void Return(Node* value);
618 void Return(Node* v1, Node* v2);
619 void Return(Node* v1, Node* v2, Node* v3);
621 void Deoptimize(Node* state);
624 Node* Phi(MachineRepresentation rep, Node* n1, Node* n2) {
627 Node* Phi(MachineRepresentation rep, Node* n1, Node* n2, Node* n3) {
630 Node* Phi(MachineRepresentation rep, Node* n1, Node* n2, Node* n3, Node* n4) {
635 // The following generic node creation methods can be used for operators that
639 Node* AddNode(const Operator* op, int input_count, Node** inputs);
641 Node* AddNode(const Operator* op) {
642 return AddNode(op, 0, static_cast<Node**>(nullptr));
646 Node* AddNode(const Operator* op, Node* n1, TArgs... args) {
647 Node* buffer[] = {n1, args...};
652 Node* MakeNode(const Operator* op, int input_count, Node** inputs);