33 lines · plain
1; REQUIRES: asserts2; RUN: opt < %s -passes='print<regions>' 2>&1 | FileCheck %s3 4; While working on improvements to the region info analysis, this test5; case caused an incorrect region bb2 => bb3 to be detected. It is incorrect6; because bb2 has an outgoing edge to bb4. This is interesting because7; bb2 dom bb3 and bb3 pdom bb2, which should have been enough to prevent incoming8; forward edges into the region and outgoing forward edges from the region.9 10define void @meread_() nounwind {11bb:12 br label %bb113 14bb1: ; preds = %bb4, %bb15 br label %bb216 17bb2: ; preds = %bb118 br i1 true, label %bb3, label %bb419 20bb3: ; preds = %bb221 br i1 true, label %bb4, label %bb522 23bb4: ; preds = %bb3, %bb224 br label %bb125 26bb5: ; preds = %bb327 ret void28 }29 30; CHECK: [0] bb => <Function Return>31; CHECK-NEXT: [1] bb1 => bb532; CHECK-NEXT: End region tree33