39TEST(DominatorTreeTests, test)
48 auto bb1 = BasicBlock::create(cfg);
49 auto bb2 = BasicBlock::create(cfg);
50 auto bb3 = BasicBlock::create(cfg);
51 auto bb4 = BasicBlock::create(cfg);
54 bb1->add_outedge(bb2);
55 bb1->add_outedge(bb3);
56 bb2->add_outedge(bb3);
57 bb2->add_outedge(bb4);
58 bb3->add_outedge(bb4);
59 bb4->add_outedge(cfg.
exit());
63 auto root = domtree(cfg);
64 check<1>(root.get(), cfg.
entry(), { bb1 });
66 auto dtbb1 = root->child(0);
67 check<3>(dtbb1, bb1, { bb2, bb3, bb4 });
70 check<0>(dtbb2, bb2, {});
73 check<0>(dtbb3, bb3, {});
76 check<1>(dtbb4, bb4, { cfg.
exit() });
78 auto dtexit = dtbb4->child(0);
79 check<0>(dtexit, cfg.
exit(), {});