| ; RUN: opt < %s -postdomtree -analyze -enable-new-pm=0 | FileCheck %s |
| ; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck %s |
| define internal void @f() { |
| entry: |
| br i1 undef, label %bb35, label %bb3.i |
| |
| bb3.i: |
| br label %bb3.i |
| |
| bb: |
| br label %bb35 |
| |
| bb.i: |
| br label %bb35 |
| |
| _float32_unpack.exit: |
| br label %bb35 |
| |
| bb.i5: |
| br label %bb35 |
| |
| _float32_unpack.exit8: |
| br label %bb35 |
| |
| bb32.preheader: |
| br label %bb35 |
| |
| bb3: |
| br label %bb35 |
| |
| bb3.split.us: |
| br label %bb35 |
| |
| bb.i4.us: |
| br label %bb35 |
| |
| bb7.i.us: |
| br label %bb35 |
| |
| bb.i4.us.backedge: |
| br label %bb35 |
| |
| bb1.i.us: |
| br label %bb35 |
| |
| bb6.i.us: |
| br label %bb35 |
| |
| bb4.i.us: |
| br label %bb35 |
| |
| bb8.i.us: |
| br label %bb35 |
| |
| bb3.i.loopexit.us: |
| br label %bb35 |
| |
| bb.nph21: |
| br label %bb35 |
| |
| bb4: |
| br label %bb35 |
| |
| bb5: |
| br label %bb35 |
| |
| bb14.preheader: |
| br label %bb35 |
| |
| bb.nph18: |
| br label %bb35 |
| |
| bb8.us.preheader: |
| br label %bb35 |
| |
| bb8.preheader: |
| br label %bb35 |
| |
| bb8.us: |
| br label %bb35 |
| |
| bb8: |
| br label %bb35 |
| |
| bb15.loopexit: |
| br label %bb35 |
| |
| bb15.loopexit2: |
| br label %bb35 |
| |
| bb15: |
| br label %bb35 |
| |
| bb16: |
| br label %bb35 |
| |
| bb17.loopexit.split: |
| br label %bb35 |
| |
| bb.nph14: |
| br label %bb35 |
| |
| bb19: |
| br label %bb35 |
| |
| bb20: |
| br label %bb35 |
| |
| bb29.preheader: |
| br label %bb35 |
| |
| bb.nph: |
| br label %bb35 |
| |
| bb23.us.preheader: |
| br label %bb35 |
| |
| bb23.preheader: |
| br label %bb35 |
| |
| bb23.us: |
| br label %bb35 |
| |
| bb23: |
| br label %bb35 |
| |
| bb30.loopexit: |
| br label %bb35 |
| |
| bb30.loopexit1: |
| br label %bb35 |
| |
| bb30: |
| br label %bb35 |
| |
| bb31: |
| br label %bb35 |
| |
| bb35.loopexit: |
| br label %bb35 |
| |
| bb35.loopexit3: |
| br label %bb35 |
| |
| bb35: |
| ret void |
| } |
| ; CHECK: Inorder PostDominator Tree: |
| ; CHECK-NEXT: [1] <<exit node>> |
| ; CHECK-NEXT: [2] %bb35 |
| ; CHECK-NEXT: [3] %bb |
| ; CHECK-NEXT: [3] %bb.i |
| ; CHECK-NEXT: [3] %_float32_unpack.exit |
| ; CHECK-NEXT: [3] %bb.i5 |
| ; CHECK-NEXT: [3] %_float32_unpack.exit8 |
| ; CHECK-NEXT: [3] %bb32.preheader |
| ; CHECK-NEXT: [3] %bb3 |
| ; CHECK-NEXT: [3] %bb3.split.us |
| ; CHECK-NEXT: [3] %bb.i4.us |
| ; CHECK-NEXT: [3] %bb7.i.us |
| ; CHECK-NEXT: [3] %bb.i4.us.backedge |
| ; CHECK-NEXT: [3] %bb1.i.us |
| ; CHECK-NEXT: [3] %bb6.i.us |
| ; CHECK-NEXT: [3] %bb4.i.us |
| ; CHECK-NEXT: [3] %bb8.i.us |
| ; CHECK-NEXT: [3] %bb3.i.loopexit.us |
| ; CHECK-NEXT: [3] %bb.nph21 |
| ; CHECK-NEXT: [3] %bb4 |
| ; CHECK-NEXT: [3] %bb5 |
| ; CHECK-NEXT: [3] %bb14.preheader |
| ; CHECK-NEXT: [3] %bb.nph18 |
| ; CHECK-NEXT: [3] %bb8.us.preheader |
| ; CHECK-NEXT: [3] %bb8.preheader |
| ; CHECK-NEXT: [3] %bb8.us |
| ; CHECK-NEXT: [3] %bb8 |
| ; CHECK-NEXT: [3] %bb15.loopexit |
| ; CHECK-NEXT: [3] %bb15.loopexit2 |
| ; CHECK-NEXT: [3] %bb15 |
| ; CHECK-NEXT: [3] %bb16 |
| ; CHECK-NEXT: [3] %bb17.loopexit.split |
| ; CHECK-NEXT: [3] %bb.nph14 |
| ; CHECK-NEXT: [3] %bb19 |
| ; CHECK-NEXT: [3] %bb20 |
| ; CHECK-NEXT: [3] %bb29.preheader |
| ; CHECK-NEXT: [3] %bb.nph |
| ; CHECK-NEXT: [3] %bb23.us.preheader |
| ; CHECK-NEXT: [3] %bb23.preheader |
| ; CHECK-NEXT: [3] %bb23.us |
| ; CHECK-NEXT: [3] %bb23 |
| ; CHECK-NEXT: [3] %bb30.loopexit |
| ; CHECK-NEXT: [3] %bb30.loopexit1 |
| ; CHECK-NEXT: [3] %bb30 |
| ; CHECK-NEXT: [3] %bb31 |
| ; CHECK-NEXT: [3] %bb35.loopexit |
| ; CHECK-NEXT: [3] %bb35.loopexit3 |
| ; CHECK-NEXT: [2] %entry |
| ; CHECK-NEXT: [2] %bb3.i |
| ; CHECK-NEXT: Roots: %bb35 %bb3.i |