Home | History | Annotate | Download | only in compiler

Lines Matching refs:Loop

17 #include "src/compiler/loop-analysis.h"
48 LoopTree* loop_tree, LoopTree::Loop* osr_loop,
55 // Make a copy of the graph for each outer loop.
57 for (LoopTree::Loop* loop = osr_loop->parent(); loop; loop = loop->parent()) {
63 loop->depth(), loop_tree->HeaderNode(loop)->id(),
64 loop_tree->HeaderNode(loop)->op()->mnemonic());
66 // Prepare the mapping for OSR values and the OSR loop entry.
71 for (LoopTree::Loop* outer = loop->parent(); outer;
119 // Construct the entry into this loop from previous copies.
121 // Gather the live loop header nodes, {loop_header} first.
122 Node* loop_header = loop_tree->HeaderNode(loop);
124 header_nodes.reserve(loop->HeaderSize());
125 header_nodes.push_back(loop_header); // put the loop header first.
126 for (Node* node : loop_tree->HeaderNodes(loop)) {
132 // Gather backedges from the previous copies of the inner loops of {loop}.
180 // merging the backedges to create the entry into the loop header.
192 // Create the merge for the entry into the loop header.
197 // Create a phi that merges values at entry into the loop header.
225 TRACE("Killing outer loop headers...\n");
226 for (LoopTree::Loop* outer = osr_loop->parent(); outer;
261 osr_loop_entry = node; // found the OSR loop entry
275 CHECK(!osr_loop); // should be only one OSR loop.
276 osr_loop = use; // found the OSR loop.
280 CHECK(osr_loop); // Should have found the OSR loop.
282 // Analyze the graph to determine how deeply nested the OSR loop is.
286 LoopTree::Loop* loop = loop_tree->ContainingLoop(osr_loop);
287 if (loop->depth() > 0) {
288 PeelOuterLoopsForOsr(graph, common, tmp_zone, dead, loop_tree, loop,
292 // Replace the normal entry with {Dead} and the loop entry with {Start}