Lines Matching defs:loop
205 // bytecode of the current loop. We implement this in a similar manner to
211 // former points at JumpLoop, the latter at the loop header, i.e. the target
346 // Builds loop exit nodes for every exited loop between the current bytecode
476 // environment, tracing back through loop headers to the resume switch of a
478 // statements across loop headers, keeping those loop headers reducible,
586 void PrepareForLoopExit(Node* loop,
855 // Create a control node for the loop header.
862 // Create Phis for any values that are live on entry to the loop and may be
863 // updated by the end of the loop.
884 // Connect to the loop end.
921 Node* loop, const BytecodeLoopAssignments& assignments,
923 DCHECK_EQ(loop->opcode(), IrOpcode::kLoop);
927 // Create the loop exit node.
928 Node* loop_exit = graph()->NewNode(common()->LoopExit(), control, loop);
938 // We should only rename if the context is assigned in the loop.
940 // Rename the environment values if they were assigned in the loop and are
941 // live after exiting the loop.
1226 // outer loop which contains the OSR loop. The iterators are then restored when
1239 // We find here the outermost loop which contains the OSR loop.
1250 // We save some iterators states at the offsets of the loop headers of the
1251 // outer loops (the ones containing the OSR loop). They will be used for
1267 // Enters all remaining exception handler which end before the OSR loop
1279 // In case of a return, we must not build loop exits for
1339 // We will iterate through the OSR loop, then its parent, and so on
1340 // until we have reached the outmost loop containing the OSR loop. We do
1341 // not generate nodes for anything before the outermost loop.
1347 // optimized code can't accidentally catch a failingstack with a OSR-ed loop
1351 // loop { OSR(); }
1363 // loop_n being the OSR loop. We start iterating the bytecode at the header
1364 // of loop_n (the OSR loop), and then we peel the part of the the body of
1366 // the header of loop_{n-1}, and so on until we have partly peeled loop 0.
1370 // To do so, if we are visiting a loop, we continue to visit what's left
1373 // parent loop entirely, and so on.
1380 // We iterate until the back edge of the parent loop, which we detect by
1386 // Reached the end of the current parent loop.
1392 .done()); // Should have found the loop's jump target.
1400 // This jump is the jump of our parent loop, which is not yet created.
1410 // environments for forward jumps out of the loop need to be preserved
1411 // (e.g. a return or a labeled break in the middle of a loop).
1450 // We peel the OSR loop and any outer loop containing it except that we
1451 // leave the nodes corresponding to the whole outermost loop (including
3739 // Jump to the target offset, whether it's a loop header or the resume.
3758 // through to the actual loop body.
3862 // Add loop header.
3866 // to the loop header.
3869 // If this loop contains resumes, create a new switch just after the loop
3910 // Only build loop exits for forward edges.
3922 // The limit_offset is the stop offset for building loop exists, used for OSR.
4346 // Control node for loop exists, add input.