From d39ad60564b68b223511c276a5aa76cddd53bf79 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 14 Jan 2015 03:34:55 +0000 Subject: [PATCH] [dom] Add a basic dominator tree test. Correct, we have *zero* basic testing of the dominator tree in the regression test suite. There is a single test that even prints it out, and that test only checks a single line of the output. There are a handful of tests that check post dominators, but all of those are looking for bugs rather than just exercising the basic machinery. This test is super boring and unexciting. But hey, it's something. I needed there to be something so I could switch the basic test to run with both the old and new pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225936 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Analysis/Dominators/basic.ll | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/Analysis/Dominators/basic.ll diff --git a/test/Analysis/Dominators/basic.ll b/test/Analysis/Dominators/basic.ll new file mode 100644 index 00000000000..8627a87b557 --- /dev/null +++ b/test/Analysis/Dominators/basic.ll @@ -0,0 +1,57 @@ +; RUN: opt < %s -domtree -analyze | FileCheck %s + +define void @test1() { +; CHECK-LABEL: 'Dominator Tree Construction' for function 'test1': +; CHECK: [1] %entry +; CHECK-NEXT: [2] %a +; CHECK-NEXT: [2] %c +; CHECK-NEXT: [3] %d +; CHECK-NEXT: [3] %e +; CHECK-NEXT: [2] %b + +entry: + br i1 undef, label %a, label %b + +a: + br label %c + +b: + br label %c + +c: + br i1 undef, label %d, label %e + +d: + ret void + +e: + ret void +} + +define void @test2() { +; CHECK-LABEL: 'Dominator Tree Construction' for function 'test2': +; CHECK: [1] %entry +; CHECK-NEXT: [2] %a +; CHECK-NEXT: [3] %b +; CHECK-NEXT: [4] %c +; CHECK-NEXT: [5] %d +; CHECK-NEXT: [5] %ret + +entry: + br label %a + +a: + br label %b + +b: + br i1 undef, label %a, label %c + +c: + br i1 undef, label %d, label %ret + +d: + br i1 undef, label %a, label %ret + +ret: + ret void +}