Home | History | Annotate | Download | only in compiler

Lines Matching refs:Node

15 #include "src/compiler/node.h"
60 Node* frame_state) {
68 VectorSlotPair const& feedback, Node* frame_state) {
74 static FlagsContinuation ForSet(FlagsCondition condition, Node* result) {
80 Node* result) {
113 Node* frame_state() const {
117 Node* result() const {
195 VectorSlotPair const& feedback, Node* frame_state)
206 FlagsContinuation(FlagsCondition condition, Node* result)
213 FlagsContinuation(FlagsCondition condition, TrapId trap_id, Node* result)
226 Node* frame_state_or_result_; // Only valid if mode_ == kFlags_deoptimize*
236 PushParameter(Node* n = nullptr,
238 : node(n), location(l) {}
240 Node* node;
352 Node* frame_state);
392 // Check if {node} can be covered while generating code for the current
393 // instruction. A node can be covered if the {user} of the node has the only
395 bool CanCover(Node* user, Node* node) const;
398 // This function checks that {node} and {user} are in the same basic block,
399 // and that {user} is the only user of {node} in this basic block. This
400 // check guarantees that there are no users of {node} scheduled between
401 // {node} and {user}, and thus we can select a single instruction for both
420 bool IsOnlyUserOfNodeInSameBlock(Node* user, Node* node) const;
422 // Checks if {node} was already defined, and therefore code was already
424 bool IsDefined(Node* node) const;
426 // Checks if {node} has any uses, and therefore code has to be generated for
428 bool IsUsed(Node* node) const;
430 // Checks if {node} is currently live.
431 bool IsLive(Node* node) const { return !IsDefined(node) && IsUsed(node); }
433 // Gets the effect level of {node}.
434 int GetEffectLevel(Node* node) const;
436 int GetVirtualRegister(const Node* node);
492 Node* frame_state);
502 void SetRename(const Node* node, const Node* rename);
506 // Inform the instruction selection that {node} was just defined.
507 void MarkAsDefined(Node* node);
509 // Inform the instruction selection that {node} has at least one use and we
511 void MarkAsUsed(Node* node);
513 // Sets the effect level of {node}.
514 void SetEffectLevel(Node* node, int effect_level);
517 // by {node}.
518 void MarkAsRepresentation(MachineRepresentation rep, Node* node);
519 void MarkAsWord32(Node* node) {
520 MarkAsRepresentation(MachineRepresentation::kWord32, node);
522 void MarkAsWord64(Node* node) {
523 MarkAsRepresentation(MachineRepresentation::kWord64, node);
525 void MarkAsFloat32(Node* node) {
526 MarkAsRepresentation(MachineRepresentation::kFloat32, node);
528 void MarkAsFloat64(Node* node) {
529 MarkAsRepresentation(MachineRepresentation::kFloat64, node);
531 void MarkAsSimd128(Node* node) {
532 MarkAsRepresentation(MachineRepresentation::kSimd128, node);
534 void MarkAsReference(Node* node) {
535 MarkAsRepresentation(MachineRepresentation::kTagged, node);
556 void InitializeCallBuffer(Node* call, CallBuffer* buffer,
562 FrameStateDescriptor* GetFrameStateDescriptor(Node* node);
564 Node* state, OperandGenerator* g,
572 Node* input, MachineType type,
582 // Visit the node for the control flow at the end of the block, generating
586 // Visit the node and generate code, if any.
587 void VisitNode(Node* node);
589 // Visit the node and generate code for IEEE 754 functions.
590 void VisitFloat64Ieee754Binop(Node*, InstructionCode code);
591 void VisitFloat64Ieee754Unop(Node*, InstructionCode code);
593 #define DECLARE_GENERATOR(x) void Visit##x(Node* node);
598 void VisitFinishRegion(Node* node);
599 void VisitParameter(Node* node);
600 void VisitIfException(Node* node);
601 void VisitOsrValue(Node* node);
602 void VisitPhi(Node* node);
603 void VisitProjection(Node* node);
604 void VisitConstant(Node* node);
605 void VisitCall(Node* call, BasicBlock* handler = nullptr);
606 void VisitCallWithCallerSavedRegisters(Node* call,
608 void VisitDeoptimizeIf(Node* node);
609 void VisitDeoptimizeUnless(Node* node);
610 void VisitTrapIf(Node* node, TrapId trap_id);
611 void VisitTrapUnless(Node* node, TrapId trap_id);
612 void VisitTailCall(Node* call);
614 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch);
615 void VisitSwitch(Node* node, const SwitchInfo& sw);
617 VectorSlotPair const& feedback, Node* value);
618 void VisitReturn(Node* ret);
619 void VisitThrow(Node* node);
620 void VisitRetain(Node* node);
621 void VisitUnreachable(Node* node);
622 void VisitDeadValue(Node* node);
624 void VisitWordCompareZero(Node* user, Node* value, FlagsContinuation* cont);
626 void EmitWordPoisonOnSpeculation(Node* node);
629 const CallDescriptor* call_descriptor, Node* node);
631 const CallDescriptor* call_descriptor, Node* node);
633 void EmitIdentity(Node* node);
634 bool CanProduceSignalingNaN(Node* node);
650 void CanonicalizeShuffle(Node* node, uint8_t* shuffle, bool* is_swizzle);
652 // Swaps the two first input operands of the node, to help match shuffles
654 void SwapShuffleInputs(Node* node);
723 void MarkPairProjectionsAsWord32(Node* node);
724 bool IsSourcePositionUsed(Node* node);
725 void VisitWord32AtomicBinaryOperation(Node* node, ArchOpcode int8_op,
730 void VisitWord64AtomicBinaryOperation(Node* node, ArchOpcode uint8_op,
734 void VisitWord64AtomicNarrowBinop(Node* node, ArchOpcode uint8_op,