Lines Matching refs:Node
14 #include "src/compiler/node.h"
36 PushParameter(Node* node, MachineType type) : node_(node), type_(type) {}
38 Node* node() const { return node_; }
42 Node* node_;
118 DeoptimizeReason reason, Node* frame_state);
122 Node* frame_state);
126 DeoptimizeReason reason, Node* frame_state);
164 // Check if {node} can be covered while generating code for the current
165 // instruction. A node can be covered if the {user} of the node has the only
167 bool CanCover(Node* user, Node* node) const;
170 // This function checks that {node} and {user} are in the same basic block,
171 // and that {user} is the only user of {node} in this basic block. This
172 // check guarantees that there are no users of {node} scheduled between
173 // {node} and {user}, and thus we can select a single instruction for both
192 bool IsOnlyUserOfNodeInSameBlock(Node* user, Node* node) const;
194 // Checks if {node} was already defined, and therefore code was already
196 bool IsDefined(Node* node) const;
198 // Checks if {node} has any uses, and therefore code has to be generated for
200 bool IsUsed(Node* node) const;
202 // Checks if {node} is currently live.
203 bool IsLive(Node* node) const { return !IsDefined(node) && IsUsed(node); }
205 // Gets the effect level of {node}.
206 int GetEffectLevel(Node* node) const;
208 int GetVirtualRegister(const Node* node);
234 void SetRename(const Node* node, const Node* rename);
238 // Inform the instruction selection that {node} was just defined.
239 void MarkAsDefined(Node* node);
241 // Inform the instruction selection that {node} has at least one use and we
243 void MarkAsUsed(Node* node);
245 // Sets the effect level of {node}.
246 void SetEffectLevel(Node* node, int effect_level);
249 // by {node}.
250 void MarkAsRepresentation(MachineRepresentation rep, Node* node);
251 void MarkAsWord32(Node* node) {
252 MarkAsRepresentation(MachineRepresentation::kWord32, node);
254 void MarkAsWord64(Node* node) {
255 MarkAsRepresentation(MachineRepresentation::kWord64, node);
257 void MarkAsFloat32(Node* node) {
258 MarkAsRepresentation(MachineRepresentation::kFloat32, node);
260 void MarkAsFloat64(Node* node) {
261 MarkAsRepresentation(MachineRepresentation::kFloat64, node);
263 void MarkAsSimd128(Node* node) {
264 MarkAsRepresentation(MachineRepresentation::kSimd128, node);
266 void MarkAsSimd1x4(Node* node) {
268 MarkAsRepresentation(MachineRepresentation::kSimd1x4, node);
270 MarkAsSimd128(node);
273 void MarkAsSimd1x8(Node* node) {
275 MarkAsRepresentation(MachineRepresentation::kSimd1x8, node);
277 MarkAsSimd128(node);
280 void MarkAsSimd1x16(Node* node) {
282 MarkAsRepresentation(MachineRepresentation::kSimd1x16, node);
284 MarkAsSimd128(node);
287 void MarkAsReference(Node* node) {
288 MarkAsRepresentation(MachineRepresentation::kTagged, node);
308 void InitializeCallBuffer(Node* call, CallBuffer* buffer,
313 FrameStateDescriptor* GetFrameStateDescriptor(Node* node);
315 Node* state, OperandGenerator* g,
323 Node* input, MachineType type,
333 // Visit the node for the control flow at the end of the block, generating
337 // Visit the node and generate code, if any.
338 void VisitNode(Node* node);
340 // Visit the node and generate code for IEEE 754 functions.
341 void VisitFloat64Ieee754Binop(Node*, InstructionCode code);
342 void VisitFloat64Ieee754Unop(Node*, InstructionCode code);
344 #define DECLARE_GENERATOR(x) void Visit##x(Node* node);
349 void VisitFinishRegion(Node* node);
350 void VisitParameter(Node* node);
351 void VisitIfException(Node* node);
352 void VisitOsrValue(Node* node);
353 void VisitPhi(Node* node);
354 void VisitProjection(Node* node);
355 void VisitConstant(Node* node);
356 void VisitCall(Node* call, BasicBlock* handler = nullptr);
357 void VisitDeoptimizeIf(Node* node);
358 void VisitDeoptimizeUnless(Node* node);
359 void VisitTrapIf(Node* node, Runtime::FunctionId func_id);
360 void VisitTrapUnless(Node* node, Runtime::FunctionId func_id);
361 void VisitTailCall(Node* call);
363 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch);
364 void VisitSwitch(Node* node, const SwitchInfo& sw);
366 Node* value);
367 void VisitReturn(Node* ret);
368 void VisitThrow(Node* value);
369 void VisitRetain(Node* node);
372 const CallDescriptor* descriptor, Node* node);
374 void EmitIdentity(Node* node);
375 bool CanProduceSignalingNaN(Node* node);
390 void MarkPairProjectionsAsWord32(Node* node);
391 bool IsSourcePositionUsed(Node* node);