Lines Matching refs:fn

43 void check_dominance(const DominatorAnalysisBase& dom_tree, const Function* fn,
47 EXPECT_TRUE(dom_tree.Dominates(spvtest::GetBasicBlock(fn, x),
48 spvtest::GetBasicBlock(fn, y)));
61 const Function* fn, uint32_t x, uint32_t y) {
64 EXPECT_FALSE(dom_tree.Dominates(spvtest::GetBasicBlock(fn, x),
65 spvtest::GetBasicBlock(fn, y)));
67 EXPECT_FALSE(dom_tree.StrictlyDominates(spvtest::GetBasicBlock(fn, x),
68 spvtest::GetBasicBlock(fn, y)));
71 EXPECT_FALSE(dom_tree.Dominates(spvtest::GetBasicBlock(fn, y),
72 spvtest::GetBasicBlock(fn, x)));
74 EXPECT_FALSE(dom_tree.StrictlyDominates(spvtest::GetBasicBlock(fn, y),
75 spvtest::GetBasicBlock(fn, x)));
115 const Function* fn = spvtest::GetFunction(module, 1);
116 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 10);
117 EXPECT_EQ(entry, fn->entry().get())
124 dom_tree.InitializeTree(cfg, fn);
134 check_dominance(dom_tree, fn, id, id);
136 check_dominance(dom_tree, fn, 10, 11);
137 check_dominance(dom_tree, fn, 10, 12);
138 check_dominance(dom_tree, fn, 10, 13);
139 check_dominance(dom_tree, fn, 10, 14);
140 check_dominance(dom_tree, fn, 10, 15);
142 check_dominance(dom_tree, fn, 11, 12);
143 check_dominance(dom_tree, fn, 11, 13);
144 check_dominance(dom_tree, fn, 11, 14);
145 check_dominance(dom_tree, fn, 11, 15);
147 check_dominance(dom_tree, fn, 14, 15);
149 check_no_dominance(dom_tree, fn, 12, 13);
150 check_no_dominance(dom_tree, fn, 12, 14);
151 check_no_dominance(dom_tree, fn, 13, 14);
173 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
174 spvtest::GetBasicBlock(fn, 10));
175 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
176 spvtest::GetBasicBlock(fn, 11));
177 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 13)),
178 spvtest::GetBasicBlock(fn, 11));
179 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 14)),
180 spvtest::GetBasicBlock(fn, 11));
181 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 15)),
182 spvtest::GetBasicBlock(fn, 14));
189 dom_tree.InitializeTree(cfg, fn);
198 check_dominance(dom_tree, fn, id, id);
200 check_dominance(dom_tree, fn, 14, 10);
201 check_dominance(dom_tree, fn, 14, 11);
202 check_dominance(dom_tree, fn, 14, 12);
203 check_dominance(dom_tree, fn, 14, 13);
205 check_dominance(dom_tree, fn, 15, 10);
206 check_dominance(dom_tree, fn, 15, 11);
207 check_dominance(dom_tree, fn, 15, 12);
208 check_dominance(dom_tree, fn, 15, 13);
209 check_dominance(dom_tree, fn, 15, 14);
211 check_no_dominance(dom_tree, fn, 13, 12);
212 check_no_dominance(dom_tree, fn, 12, 11);
213 check_no_dominance(dom_tree, fn, 13, 11);
233 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
234 spvtest::GetBasicBlock(fn, 14));
235 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
236 spvtest::GetBasicBlock(fn, 14));
237 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 13)),
238 spvtest::GetBasicBlock(fn, 14));
239 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 14)),
240 spvtest::GetBasicBlock(fn, 15));
242 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 15)),
281 const Function* fn = spvtest::GetFunction(module, 1);
283 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 8);
284 EXPECT_EQ(entry, fn->entry().get())
291 dom_tree.InitializeTree(cfg, fn);
301 check_dominance(dom_tree, fn, id, id);
303 check_dominance(dom_tree, fn, 8, 9);
304 check_dominance(dom_tree, fn, 8, 10);
305 check_dominance(dom_tree, fn, 8, 11);
306 check_dominance(dom_tree, fn, 8, 12);
308 check_dominance(dom_tree, fn, 9, 10);
309 check_dominance(dom_tree, fn, 9, 11);
310 check_dominance(dom_tree, fn, 9, 12);
312 check_dominance(dom_tree, fn, 11, 12);
314 check_no_dominance(dom_tree, fn, 10, 11);
319 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 9)),
320 spvtest::GetBasicBlock(fn, 8));
321 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
322 spvtest::GetBasicBlock(fn, 9));
323 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
324 spvtest::GetBasicBlock(fn, 9));
325 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
326 spvtest::GetBasicBlock(fn, 11));
333 dom_tree.InitializeTree(cfg, fn);
342 check_dominance(dom_tree, fn, id, id);
344 check_dominance(dom_tree, fn, 12, 8);
345 check_dominance(dom_tree, fn, 12, 10);
346 check_dominance(dom_tree, fn, 12, 11);
347 check_dominance(dom_tree, fn, 12, 12);
349 check_dominance(dom_tree, fn, 11, 8);
350 check_dominance(dom_tree, fn, 11, 9);
351 check_dominance(dom_tree, fn, 11, 10);
353 check_dominance(dom_tree, fn, 9, 8);
356 spvtest::GetBasicBlock(fn, 9));
358 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 9)),
359 spvtest::GetBasicBlock(fn, 11));
360 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
361 spvtest::GetBasicBlock(fn, 11));
362 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
363 spvtest::GetBasicBlock(fn, 12));
365 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
402 const Function* fn = spvtest::GetFunction(module, 1);
404 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 10);
405 EXPECT_EQ(entry, fn->entry().get())
412 dom_tree.InitializeTree(cfg, fn);
421 for (uint32_t id : {10, 11, 12}) check_dominance(dom_tree, fn, id, id);
423 check_dominance(dom_tree, fn, 10, 11);
424 check_dominance(dom_tree, fn, 10, 12);
425 check_dominance(dom_tree, fn, 11, 12);
430 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
431 spvtest::GetBasicBlock(fn, 10));
432 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
433 spvtest::GetBasicBlock(fn, 11));
488 dom_tree.InitializeTree(cfg, fn);
496 for (uint32_t id : {10, 11, 12}) check_dominance(dom_tree, fn, id, id);
498 check_dominance(dom_tree, fn, 12, 10);
499 check_dominance(dom_tree, fn, 12, 11);
500 check_dominance(dom_tree, fn, 12, 12);
503 spvtest::GetBasicBlock(fn, 11));
505 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
506 spvtest::GetBasicBlock(fn, 12));
510 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
599 const Function* fn = spvtest::GetFunction(module, 1);
601 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 10);
602 EXPECT_EQ(entry, fn->entry().get())
609 dom_tree.InitializeTree(cfg, fn);
619 check_dominance(dom_tree, fn, id, id);
621 check_dominance(dom_tree, fn, 10, 11);
622 check_dominance(dom_tree, fn, 10, 13);
623 check_dominance(dom_tree, fn, 10, 12);
624 check_dominance(dom_tree, fn, 10, 14);
625 check_dominance(dom_tree, fn, 10, 15);
627 check_dominance(dom_tree, fn, 11, 12);
628 check_dominance(dom_tree, fn, 11, 13);
629 check_dominance(dom_tree, fn, 11, 14);
630 check_dominance(dom_tree, fn, 11, 15);
632 check_dominance(dom_tree, fn, 12, 14);
633 check_dominance(dom_tree, fn, 12, 15);
635 check_dominance(dom_tree, fn, 14, 15);
637 check_no_dominance(dom_tree, fn, 13, 12);
638 check_no_dominance(dom_tree, fn, 13, 14);
639 check_no_dominance(dom_tree, fn, 13, 15);
644 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
645 spvtest::GetBasicBlock(fn, 10));
646 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
647 spvtest::GetBasicBlock(fn, 11));
648 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 13)),
649 spvtest::GetBasicBlock(fn, 11));
650 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 14)),
651 spvtest::GetBasicBlock(fn, 12));
652 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 15)),
653 spvtest::GetBasicBlock(fn, 14));
660 dom_tree.InitializeTree(cfg, fn);
664 check_dominance(dom_tree, fn, id, id);
666 check_no_dominance(dom_tree, fn, 15, 10);
667 check_no_dominance(dom_tree, fn, 15, 11);
668 check_no_dominance(dom_tree, fn, 15, 12);
669 check_no_dominance(dom_tree, fn, 15, 13);
670 check_no_dominance(dom_tree, fn, 15, 14);
672 check_dominance(dom_tree, fn, 14, 12);
674 check_no_dominance(dom_tree, fn, 13, 10);
675 check_no_dominance(dom_tree, fn, 13, 11);
676 check_no_dominance(dom_tree, fn, 13, 12);
677 check_no_dominance(dom_tree, fn, 13, 14);
678 check_no_dominance(dom_tree, fn, 13, 15);
680 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
681 spvtest::GetBasicBlock(fn, 11));
682 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
683 spvtest::GetBasicBlock(fn, 14));
687 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 15)),
689 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 13)),
691 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 14)),
693 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
730 const Function* fn = spvtest::GetFunction(module, 1);
732 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 10);
733 EXPECT_EQ(entry, fn->entry().get())
739 dom_tree.InitializeTree(cfg, fn);
748 for (uint32_t id : {10, 11, 12, 13}) check_dominance(dom_tree, fn, id, id);
750 check_dominance(dom_tree, fn, 10, 11);
751 check_dominance(dom_tree, fn, 10, 12);
752 check_dominance(dom_tree, fn, 10, 13);
754 check_dominance(dom_tree, fn, 11, 12);
755 check_dominance(dom_tree, fn, 11, 13);
757 check_no_dominance(dom_tree, fn, 13, 12);
762 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
763 spvtest::GetBasicBlock(fn, 10));
764 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
765 spvtest::GetBasicBlock(fn, 11));
766 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 13)),
767 spvtest::GetBasicBlock(fn, 11));
774 dom_tree.InitializeTree(cfg, fn);
782 for (uint32_t id : {10, 11, 12}) check_dominance(dom_tree, fn, id, id);
784 check_dominance(dom_tree, fn, 12, 11);
785 check_dominance(dom_tree, fn, 12, 10);
788 check_no_dominance(dom_tree, fn, 12, 13);
789 check_no_dominance(dom_tree, fn, 11, 13);
790 check_no_dominance(dom_tree, fn, 10, 13);
794 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 12)),
797 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
798 spvtest::GetBasicBlock(fn, 11));
800 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 11)),
801 spvtest::GetBasicBlock(fn, 12));
834 const Function* fn = spvtest::GetFunction(module, 1);
836 const BasicBlock* entry = spvtest::GetBasicBlock(fn, 8);
837 EXPECT_EQ(entry, fn->entry().get())
844 dom_tree.InitializeTree(cfg, fn);
853 for (uint32_t id : {8, 9}) check_dominance(dom_tree, fn, id, id);
855 check_dominance(dom_tree, fn, 8, 9);
857 check_no_dominance(dom_tree, fn, 10, 8);
858 check_no_dominance(dom_tree, fn, 10, 9);
863 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 9)),
864 spvtest::GetBasicBlock(fn, 8));
865 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
873 dom_tree.InitializeTree(cfg, fn);
881 for (uint32_t id : {8, 9, 10}) check_dominance(dom_tree, fn, id, id);
883 check_dominance(dom_tree, fn, 9, 8);
884 check_dominance(dom_tree, fn, 9, 10);
887 spvtest::GetBasicBlock(fn, 9));
890 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 9)),
892 EXPECT_EQ(dom_tree.ImmediateDominator(spvtest::GetBasicBlock(fn, 10)),
893 spvtest::GetBasicBlock(fn, 9));