Home | History | Annotate | Download | only in optimizing

Lines Matching refs:graph

34   HGraph* graph = builder.BuildGraph(*item);
35 graph->BuildDominatorTree();
36 graph->FindNaturalLoops();
37 return graph;
47 HGraph* graph = TestCode(data, &arena);
48 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) {
49 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr);
59 HGraph* graph = TestCode(data, &arena);
60 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) {
61 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr);
74 HGraph* graph = TestCode(data, &arena);
75 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) {
76 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr);
90 HGraph* graph = TestCode(data, &arena);
91 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) {
92 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr);
104 HGraph* graph = TestCode(data, &arena);
105 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) {
106 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr);
110 static void TestBlock(HGraph* graph,
116 HBasicBlock* block = graph->GetBlocks().Get(block_id);
149 HGraph* graph = TestCode(data, &arena);
151 TestBlock(graph, 0, false, -1); // entry block
152 TestBlock(graph, 1, false, -1); // pre header
154 TestBlock(graph, 2, true, 2, blocks2, 2); // loop header
155 TestBlock(graph, 3, false, 2); // block in loop
156 TestBlock(graph, 4, false, -1); // return block
157 TestBlock(graph, 5, false, -1); // exit block
176 HGraph* graph = TestCode(data, &arena);
178 TestBlock(graph, 0, false, -1); // entry block
179 TestBlock(graph, 1, false, -1); // goto block
181 TestBlock(graph, 2, true, 2, blocks2, 2); // loop header
182 TestBlock(graph, 3, false, 2); // block in loop
183 TestBlock(graph, 4, false, -1); // pre header
184 TestBlock(graph, 5, false, -1); // return block
185 TestBlock(graph, 6, false, -1); // exit block
200 HGraph* graph = TestCode(data, &arena);
202 TestBlock(graph, 0, false, -1); // entry block
203 TestBlock(graph, 1, false, -1); // goto block
204 TestBlock(graph, 2, false, -1);
206 TestBlock(graph, 3, true, 3, blocks2, 2); // loop header
207 TestBlock(graph, 4, false, 3); // block in loop
208 TestBlock(graph, 5, false, -1); // pre header
209 TestBlock(graph, 6, false, -1); // return block
210 TestBlock(graph, 7, false, -1); // exit block
211 TestBlock(graph, 8, false, -1); // synthesized pre header
225 HGraph* graph = TestCode(data, &arena);
227 TestBlock(graph, 0, false, -1); // entry block
228 TestBlock(graph, 1, false, -1); // pre header
230 TestBlock(graph, 2, true, 2, blocks2, 5); // loop header
231 TestBlock(graph, 3, false, 2); // block in loop
232 TestBlock(graph, 4, false, 2); // original back edge
233 TestBlock(graph, 5, false, 2); // original back edge
234 TestBlock(graph, 6, false, -1); // return block
235 TestBlock(graph, 7, false, -1); // exit block
236 TestBlock(graph, 8, false, 2); // synthesized back edge
251 HGraph* graph = TestCode(data, &arena);
253 TestBlock(graph, 0, false, -1); // entry block
254 TestBlock(graph, 1, false, -1); // pre header
256 TestBlock(graph, 2, true, 2, blocks2, 3); // loop header
257 TestBlock(graph, 3, false, 2); // block in loop
258 TestBlock(graph, 4, false, -1); // loop exit
259 TestBlock(graph, 5, false, 2); // back edge
260 TestBlock(graph, 6, false, -1); // return block
261 TestBlock(graph, 7, false, -1); // exit block
262 TestBlock(graph, 8, false, -1); // synthesized block at the loop exit
276 HGraph* graph = TestCode(data, &arena);
278 TestBlock(graph, 0, false, -1); // entry block
279 TestBlock(graph, 1, false, -1); // pre header of outer loop
281 TestBlock(graph, 2, true, 2, blocks2, 5); // outer loop header
283 TestBlock(graph, 3, true, 3, blocks3, 2); // inner loop header
284 TestBlock(graph, 4, false, 3); // back edge on inner loop
285 TestBlock(graph, 5, false, 2); // back edge on outer loop
286 TestBlock(graph, 6, false, -1); // return block
287 TestBlock(graph, 7, false, -1); // exit block
288 TestBlock(graph, 8, false, 2); // synthesized block as pre header of inner loop
290 ASSERT_TRUE(graph->GetBlocks().Get(3)->GetLoopInformation()->IsIn(
291 *graph->GetBlocks().Get(2)->GetLoopInformation()));
292 ASSERT_FALSE(graph->GetBlocks().Get(2)->GetLoopInformation()->IsIn(
293 *graph->GetBlocks().Get(3)->GetLoopInformation()));
307 HGraph* graph = TestCode(data, &arena);
309 TestBlock(graph, 0, false, -1); // entry block
310 TestBlock(graph, 1, false, -1); // pre header of first loop
312 TestBlock(graph, 2, true, 2, blocks2, 2); // first loop header
313 TestBlock(graph, 3, false, 2); // back edge of first loop
315 TestBlock(graph, 4, true, 4, blocks4, 2); // second loop header
316 TestBlock(graph, 5, false, 4); // back edge of second loop
317 TestBlock(graph, 6, false, -1); // return block
318 TestBlock(graph, 7, false, -1); // exit block
320 ASSERT_FALSE(graph->GetBlocks().Get(4)->GetLoopInformation()->IsIn(
321 *graph->GetBlocks().Get(2)->GetLoopInformation()));
322 ASSERT_FALSE(graph->GetBlocks().Get(2)->GetLoopInformation()->IsIn(
323 *graph->GetBlocks().Get(4)->GetLoopInformation()));
336 HGraph* graph = TestCode(data, &arena);
337 ASSERT_TRUE(graph->GetBlocks().Get(3)->IsLoopHeader());
338 HLoopInformation* info = graph->GetBlocks().Get(3)->GetLoopInformation();
350 HGraph* graph = TestCode(data, &arena);
352 TestBlock(graph, 0, false, -1); // entry block
353 TestBlock(graph, 1, false, -1); // pre header of first loop
355 TestBlock(graph, 2, true, 2, blocks2, 3); // loop header
356 TestBlock(graph, 3, false, 2); // back edge of first loop
357 TestBlock(graph, 4, false, -1); // return block
358 TestBlock(graph, 5, false, -1); // exit block
359 TestBlock(graph, 6, false, 2); // synthesized block to avoid a critical edge