Lines Matching defs:PDT

28     function_ref<void(Function &F, DominatorTree *DT, PostDominatorTree *PDT)>
34 PostDominatorTree PDT(*F);
35 Test(*F, &DT, &PDT);
63 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
107 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
231 EXPECT_TRUE(PDT->dominates(BB0, BB0));
232 EXPECT_FALSE(PDT->dominates(BB1, BB0));
233 EXPECT_FALSE(PDT->dominates(BB2, BB0));
234 EXPECT_FALSE(PDT->dominates(BB3, BB0));
235 EXPECT_TRUE(PDT->dominates(BB4, BB1));
241 PDT->getDescendants(BB0, PostDominatedBBs);
327 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
358 // Verify that the PDT is correctly updated in case an edge removal results
359 // in a new unreachable CFG node. Also make sure that the updated PDT is the
362 // For the following input code and initial PDT:
364 // CFG PDT
376 // we verify that CFG' and PDT-updated is obtained after removal of edge C -> B.
378 // CFG' PDT-updated
411 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
419 ASSERT_TRUE(PDT->dominates(PDT->getNode(D), PDT->getNode(B)));
421 EXPECT_TRUE(PDT->verify());
427 PDT->deleteEdge(C, B);
430 EXPECT_TRUE(PDT->verify());
432 EXPECT_FALSE(PDT->dominates(PDT->getNode(D), PDT->getNode(B)));
433 EXPECT_NE(PDT->getNode(C), nullptr);
439 EXPECT_EQ(PDT->compare(NPDT), 0);
443 // Verify that the PDT is correctly updated in case an edge removal results
444 // in an infinite loop. Also make sure that the updated PDT is the
449 // CFG PDT
465 // CFG' PDT'
505 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
513 ASSERT_TRUE(PDT->dominates(PDT->getNode(D), PDT->getNode(B)));
515 EXPECT_TRUE(PDT->verify());
521 PDT->deleteEdge(C, B);
522 EXPECT_TRUE(PDT->verify());
524 EXPECT_FALSE(PDT->dominates(PDT->getNode(D), PDT->getNode(B)));
525 EXPECT_NE(PDT->getNode(C), nullptr);
531 EXPECT_EQ(PDT->compare(NPDT), 0);
535 // Verify that the PDT is correctly updated in case an edge removal results
540 // CFG PDT
556 // CFG' PDT'
569 // In PDT, D does not post-dominate B. After the edge C -> C2 is removed,
570 // C becomes a new nontrivial PDT root.
594 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
604 EXPECT_TRUE(PDT->verify());
609 PDT->deleteEdge(C, C2);
612 PDT->eraseNode(C2);
616 EXPECT_TRUE(PDT->verify());
618 EXPECT_FALSE(PDT->dominates(PDT->getNode(D), PDT->getNode(B)));
619 EXPECT_NE(PDT->getNode(C), nullptr);
625 EXPECT_EQ(PDT->compare(NPDT), 0);
667 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
721 PostDominatorTree PDT(*Holder.F);
722 EXPECT_TRUE(PDT.verify());
731 PDT.insertEdge(From, To);
732 EXPECT_TRUE(PDT.verify());
747 PostDominatorTree PDT(*Holder.F);
748 EXPECT_TRUE(PDT.verify());
758 PDT.insertEdge(From, To);
759 EXPECT_TRUE(PDT.verify());
775 PostDominatorTree PDT(*Holder.F);
776 EXPECT_TRUE(PDT.verify());
785 PDT.insertEdge(From, To);
786 EXPECT_TRUE(PDT.verify());
796 PostDominatorTree PDT(*Holder.F);
797 EXPECT_TRUE(PDT.verify());
805 PDT.insertEdge(From, To);
806 EXPECT_TRUE(PDT.verify());
807 EXPECT_EQ(PDT.root_size(), 2UL);
810 EXPECT_NE(PDT.getNode(BB5), nullptr);
826 PostDominatorTree PDT(*Holder.F);
827 EXPECT_TRUE(PDT.verify());
836 PDT.insertEdge(From, To);
837 EXPECT_TRUE(PDT.verify());
856 PostDominatorTree PDT(*Holder.F);
857 EXPECT_TRUE(PDT.verify());
866 PDT.insertEdge(From, To);
867 EXPECT_TRUE(PDT.verify());
883 PostDominatorTree PDT(*Holder.F);
884 EXPECT_TRUE(PDT.verify());
893 PDT.deleteEdge(From, To);
894 EXPECT_TRUE(PDT.verify());
909 PostDominatorTree PDT(*Holder.F);
910 EXPECT_TRUE(PDT.verify());
919 PDT.deleteEdge(From, To);
920 EXPECT_TRUE(PDT.verify());
939 PostDominatorTree PDT(*Holder.F);
940 EXPECT_TRUE(PDT.verify());
948 PDT.insertEdge(From, To);
951 PDT.deleteEdge(From, To);
955 EXPECT_TRUE(PDT.verify());
977 PostDominatorTree PDT(*Holder.F);
978 EXPECT_TRUE(PDT.verify());
986 PDT.insertEdge(From, To);
989 PDT.deleteEdge(From, To);
993 EXPECT_TRUE(PDT.verify());
1039 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
1086 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
1124 *M, "x", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {