Lines Matching defs:DT

28     function_ref<void(Function &F, DominatorTree *DT, PostDominatorTree *PDT)>
33 DominatorTree DT(*F);
35 Test(*F, &DT, &PDT);
63 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
72 EXPECT_TRUE(DT->dominates(PhiA, PhiB));
73 EXPECT_TRUE(DT->dominates(PhiB, PhiA));
107 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
135 EXPECT_TRUE(DT->isReachableFromEntry(BB0));
136 EXPECT_TRUE(DT->isReachableFromEntry(BB1));
137 EXPECT_TRUE(DT->isReachableFromEntry(BB2));
138 EXPECT_FALSE(DT->isReachableFromEntry(BB3));
139 EXPECT_TRUE(DT->isReachableFromEntry(BB4));
142 EXPECT_TRUE(DT->dominates(BB0, BB0));
143 EXPECT_TRUE(DT->dominates(BB0, BB1));
144 EXPECT_TRUE(DT->dominates(BB0, BB2));
145 EXPECT_TRUE(DT->dominates(BB0, BB3));
146 EXPECT_TRUE(DT->dominates(BB0, BB4));
148 EXPECT_FALSE(DT->dominates(BB1, BB0));
149 EXPECT_TRUE(DT->dominates(BB1, BB1));
150 EXPECT_FALSE(DT->dominates(BB1, BB2));
151 EXPECT_TRUE(DT->dominates(BB1, BB3));
152 EXPECT_FALSE(DT->dominates(BB1, BB4));
154 EXPECT_FALSE(DT->dominates(BB2, BB0));
155 EXPECT_FALSE(DT->dominates(BB2, BB1));
156 EXPECT_TRUE(DT->dominates(BB2, BB2));
157 EXPECT_TRUE(DT->dominates(BB2, BB3));
158 EXPECT_FALSE(DT->dominates(BB2, BB4));
160 EXPECT_FALSE(DT->dominates(BB3, BB0));
161 EXPECT_FALSE(DT->dominates(BB3, BB1));
162 EXPECT_FALSE(DT->dominates(BB3, BB2));
163 EXPECT_TRUE(DT->dominates(BB3, BB3));
164 EXPECT_FALSE(DT->dominates(BB3, BB4));
167 EXPECT_FALSE(DT->properlyDominates(BB0, BB0));
168 EXPECT_TRUE(DT->properlyDominates(BB0, BB1));
169 EXPECT_TRUE(DT->properlyDominates(BB0, BB2));
170 EXPECT_TRUE(DT->properlyDominates(BB0, BB3));
172 EXPECT_FALSE(DT->properlyDominates(BB1, BB0));
173 EXPECT_FALSE(DT->properlyDominates(BB1, BB1));
174 EXPECT_FALSE(DT->properlyDominates(BB1, BB2));
175 EXPECT_TRUE(DT->properlyDominates(BB1, BB3));
177 EXPECT_FALSE(DT->properlyDominates(BB2, BB0));
178 EXPECT_FALSE(DT->properlyDominates(BB2, BB1));
179 EXPECT_FALSE(DT->properlyDominates(BB2, BB2));
180 EXPECT_TRUE(DT->properlyDominates(BB2, BB3));
182 EXPECT_FALSE(DT->properlyDominates(BB3, BB0));
183 EXPECT_FALSE(DT->properlyDominates(BB3, BB1));
184 EXPECT_FALSE(DT->properlyDominates(BB3, BB2));
185 EXPECT_FALSE(DT->properlyDominates(BB3, BB3));
188 EXPECT_FALSE(DT->dominates(Y1, Y1));
189 EXPECT_TRUE(DT->dominates(Y1, Y2));
190 EXPECT_FALSE(DT->dominates(Y2, Y1));
191 EXPECT_FALSE(DT->dominates(Y2, Y2));
194 EXPECT_TRUE(DT->dominates(Y6, Y6));
195 EXPECT_TRUE(DT->dominates(Y6, Y7));
196 EXPECT_TRUE(DT->dominates(Y7, Y6));
197 EXPECT_TRUE(DT->dominates(Y7, Y7));
200 EXPECT_TRUE(DT->dominates(Y3, Y4));
201 EXPECT_FALSE(DT->dominates(Y3, Y5));
204 EXPECT_TRUE(DT->dominates(Y2, Y9));
205 EXPECT_FALSE(DT->dominates(Y3, Y9));
206 EXPECT_FALSE(DT->dominates(Y8, Y9));
209 EXPECT_TRUE(DT->dominates(Y1, Y6));
210 EXPECT_TRUE(DT->dominates(Y3, Y6));
213 EXPECT_FALSE(DT->dominates(Y6, Y1));
216 EXPECT_FALSE(DT->dominates(Y1, BB0));
217 EXPECT_TRUE(DT->dominates(Y1, BB1));
218 EXPECT_TRUE(DT->dominates(Y1, BB2));
219 EXPECT_TRUE(DT->dominates(Y1, BB3));
220 EXPECT_TRUE(DT->dominates(Y1, BB4));
222 EXPECT_FALSE(DT->dominates(Y3, BB0));
223 EXPECT_TRUE(DT->dominates(Y3, BB1));
224 EXPECT_FALSE(DT->dominates(Y3, BB2));
225 EXPECT_TRUE(DT->dominates(Y3, BB3));
226 EXPECT_FALSE(DT->dominates(Y3, BB4));
228 EXPECT_TRUE(DT->dominates(Y6, BB3));
240 DT->getDescendants(BB0, DominatedBBs);
248 DT->getDescendants(BB3, DominatedBBs);
249 DT->getDescendants(BB3, PostDominatedBBs);
254 DT->updateDFSNumbers();
255 EXPECT_EQ(DT->getNode(BB0)->getDFSNumIn(), 0UL);
256 EXPECT_EQ(DT->getNode(BB0)->getDFSNumOut(), 7UL);
257 EXPECT_EQ(DT->getNode(BB1)->getDFSNumIn(), 1UL);
258 EXPECT_EQ(DT->getNode(BB1)->getDFSNumOut(), 2UL);
259 EXPECT_EQ(DT->getNode(BB2)->getDFSNumIn(), 5UL);
260 EXPECT_EQ(DT->getNode(BB2)->getDFSNumOut(), 6UL);
261 EXPECT_EQ(DT->getNode(BB4)->getDFSNumIn(), 3UL);
262 EXPECT_EQ(DT->getNode(BB4)->getDFSNumOut(), 4UL);
265 EXPECT_EQ(DT->getNode(BB0)->getLevel(), 0U);
266 EXPECT_EQ(DT->getNode(BB1)->getLevel(), 1U);
267 EXPECT_EQ(DT->getNode(BB2)->getLevel(), 1U);
268 EXPECT_EQ(DT->getNode(BB4)->getLevel(), 1U);
273 DT->recalculate(F);
276 DT->updateDFSNumbers();
277 EXPECT_EQ(DT->getNode(BB0)->getDFSNumIn(), 0UL);
278 EXPECT_EQ(DT->getNode(BB0)->getDFSNumOut(), 9UL);
279 EXPECT_EQ(DT->getNode(BB1)->getDFSNumIn(), 1UL);
280 EXPECT_EQ(DT->getNode(BB1)->getDFSNumOut(), 4UL);
281 EXPECT_EQ(DT->getNode(BB2)->getDFSNumIn(), 7UL);
282 EXPECT_EQ(DT->getNode(BB2)->getDFSNumOut(), 8UL);
283 EXPECT_EQ(DT->getNode(BB3)->getDFSNumIn(), 2UL);
284 EXPECT_EQ(DT->getNode(BB3)->getDFSNumOut(), 3UL);
285 EXPECT_EQ(DT->getNode(BB4)->getDFSNumIn(), 5UL);
286 EXPECT_EQ(DT->getNode(BB4)->getDFSNumOut(), 6UL);
289 EXPECT_EQ(DT->getNode(BB0)->getLevel(), 0U);
290 EXPECT_EQ(DT->getNode(BB1)->getLevel(), 1U);
291 EXPECT_EQ(DT->getNode(BB2)->getLevel(), 1U);
292 EXPECT_EQ(DT->getNode(BB3)->getLevel(), 2U);
293 EXPECT_EQ(DT->getNode(BB4)->getLevel(), 1U);
296 EXPECT_TRUE(DT->verify());
302 DT->setNewRoot(NewEntry);
303 EXPECT_TRUE(DT->verify());
327 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
347 EXPECT_TRUE(DT->dominates(Edge_BB0_BB2, BB2));
348 EXPECT_FALSE(DT->dominates(Edge_BB0_BB2, BB1));
350 EXPECT_FALSE(DT->dominates(Edge_BB0_BB1_a, BB1));
351 EXPECT_FALSE(DT->dominates(Edge_BB0_BB1_b, BB1));
353 EXPECT_FALSE(DT->dominates(Edge_BB0_BB1_a, BB2));
354 EXPECT_FALSE(DT->dominates(Edge_BB0_BB1_b, BB2));
411 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
420 EXPECT_TRUE(DT->verify());
426 DT->deleteEdge(C, B);
429 EXPECT_TRUE(DT->verify());
436 EXPECT_EQ(DT->compare(NDT), 0);
505 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
514 EXPECT_TRUE(DT->verify());
519 DT->deleteEdge(C, B);
520 EXPECT_TRUE(DT->verify());
528 EXPECT_EQ(DT->compare(NDT), 0);
594 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
603 EXPECT_TRUE(DT->verify());
608 DT->deleteEdge(C, C2);
611 EXPECT_EQ(DT->getNode(C2), nullptr);
615 EXPECT_TRUE(DT->verify());
622 EXPECT_EQ(DT->compare(NDT), 0);
667 *M, "f", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
677 DT->updateDFSNumbers();
678 ForwardIDFCalculator IDF(*DT);
690 EXPECT_EQ(DT->getNode(A)->getDFSNumIn(), 0UL);
693 EXPECT_TRUE(DT->getNode(IDFBlocks[0])->getDFSNumIn() <
694 DT->getNode(IDFBlocks[1])->getDFSNumIn());
719 DominatorTree DT(*Holder.F);
720 EXPECT_TRUE(DT.verify());
729 DT.insertEdge(From, To);
730 EXPECT_TRUE(DT.verify());
745 DominatorTree DT(*Holder.F);
746 EXPECT_TRUE(DT.verify());
756 DT.insertEdge(From, To);
757 EXPECT_TRUE(DT.verify());
773 DominatorTree DT(*Holder.F);
774 EXPECT_TRUE(DT.verify());
783 DT.insertEdge(From, To);
784 EXPECT_TRUE(DT.verify());
824 DominatorTree DT(*Holder.F);
825 EXPECT_TRUE(DT.verify());
834 DT.insertEdge(From, To);
835 EXPECT_TRUE(DT.verify());
854 DominatorTree DT(*Holder.F);
855 EXPECT_TRUE(DT.verify());
864 DT.insertEdge(From, To);
865 EXPECT_TRUE(DT.verify());
881 DominatorTree DT(*Holder.F);
882 EXPECT_TRUE(DT.verify());
891 DT.deleteEdge(From, To);
892 EXPECT_TRUE(DT.verify());
907 DominatorTree DT(*Holder.F);
908 EXPECT_TRUE(DT.verify());
917 DT.deleteEdge(From, To);
918 EXPECT_TRUE(DT.verify());
937 DominatorTree DT(*Holder.F);
938 EXPECT_TRUE(DT.verify());
947 DT.insertEdge(From, To);
950 DT.deleteEdge(From, To);
954 EXPECT_TRUE(DT.verify());
975 DominatorTree DT(*Holder.F);
976 EXPECT_TRUE(DT.verify());
985 DT.insertEdge(From, To);
988 DT.deleteEdge(From, To);
992 EXPECT_TRUE(DT.verify());
1011 DominatorTree DT(*Holder.F);
1012 EXPECT_TRUE(DT.verify());
1017 DT.insertEdge(From, To);
1019 EXPECT_TRUE(DT.verify());
1039 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
1052 EXPECT_TRUE(DT->dominates(E01, E01));
1053 EXPECT_FALSE(DT->dominates(E01, E02));
1054 EXPECT_TRUE(DT->dominates(E01, E13));
1055 EXPECT_FALSE(DT->dominates(E01, E23));
1057 EXPECT_FALSE(DT->dominates(E02, E01));
1058 EXPECT_TRUE(DT->dominates(E02, E02));
1059 EXPECT_FALSE(DT->dominates(E02, E13));
1060 EXPECT_TRUE(DT->dominates(E02, E23));
1062 EXPECT_FALSE(DT->dominates(E13, E01));
1063 EXPECT_FALSE(DT->dominates(E13, E02));
1064 EXPECT_TRUE(DT->dominates(E13, E13));
1065 EXPECT_FALSE(DT->dominates(E13, E23));
1067 EXPECT_FALSE(DT->dominates(E23, E01));
1068 EXPECT_FALSE(DT->dominates(E23, E02));
1069 EXPECT_FALSE(DT->dominates(E23, E13));
1070 EXPECT_TRUE(DT->dominates(E23, E23));
1086 [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
1092 EXPECT_TRUE(DT->dominates(A, I));
1093 EXPECT_TRUE(DT->dominates(G, I));
1094 EXPECT_TRUE(DT->dominates(C, I));
1097 EXPECT_TRUE(DT->dominates(A, U));
1098 EXPECT_TRUE(DT->dominates(G, U));
1099 EXPECT_TRUE(DT->dominates(C, U));
1124 *M, "x", [&](Function &F, DominatorTree *DT, PostDominatorTree *PDT) {
1131 EXPECT_TRUE(DT->dominates(Entry, ASMFallthrough));
1132 EXPECT_TRUE(DT->dominates(Entry, Z));
1141 EXPECT_TRUE(DT->dominates(cast<Value>(&I), cast<Instruction>(U)));