In some rare cases, the register allocator can spill registers but end up not utilizi...
[llvm/msp430.git] / test / Analysis / PostDominators / 2006-09-26-PostDominanceFrontier.ll
blobb272f92499e5c9bd408eb3a16f605117cd4bd86e
1 ; RUN: llvm-as < %s | opt -analyze -postdomfrontier \
2 ; RUN:   -disable-verify
3 ; ModuleID = '2006-09-26-PostDominanceFrontier.bc'
4 target datalayout = "e-p:64:64"
5 target triple = "alphaev67-unknown-linux-gnu"
6         %struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [44 x i8] }
7         %struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
8 @TOP = external global i64*             ; <i64**> [#uses=1]
9 @BOT = external global i64*             ; <i64**> [#uses=1]
10 @str = external global [2 x i8]         ; <[2 x i8]*> [#uses=0]
12 declare void @fopen()
14 define void @main(i8** %argv) {
15 entry:
16         %netSelect.i507 = alloca i64, align 8           ; <i64*> [#uses=0]
17         %topStart.i = alloca i64, align 8               ; <i64*> [#uses=0]
18         %topEnd.i = alloca i64, align 8         ; <i64*> [#uses=0]
19         %botStart.i = alloca i64, align 8               ; <i64*> [#uses=0]
20         %botEnd.i = alloca i64, align 8         ; <i64*> [#uses=0]
21         %c1.i154 = alloca i32, align 4          ; <i32*> [#uses=0]
22         %b1.i155 = alloca i32, align 4          ; <i32*> [#uses=0]
23         %t1.i156 = alloca i32, align 4          ; <i32*> [#uses=0]
24         %c1.i = alloca i32, align 4             ; <i32*> [#uses=0]
25         %b1.i = alloca i32, align 4             ; <i32*> [#uses=0]
26         %t1.i = alloca i32, align 4             ; <i32*> [#uses=0]
27         %netSelect.i5 = alloca i64, align 8             ; <i64*> [#uses=0]
28         %netSelect.i = alloca i64, align 8              ; <i64*> [#uses=0]
29         %tmp2.i = getelementptr i8** %argv, i32 1               ; <i8**> [#uses=1]
30         %tmp3.i4 = load i8** %tmp2.i            ; <i8*> [#uses=0]
31         call void @fopen( )
32         br i1 false, label %DimensionChannel.exit, label %bb.backedge.i
34 bb.backedge.i:          ; preds = %entry
35         ret void
37 DimensionChannel.exit:          ; preds = %entry
38         %tmp13.i137 = malloc i64, i32 0         ; <i64*> [#uses=1]
39         %tmp610.i = malloc i64, i32 0           ; <i64*> [#uses=1]
40         br label %cond_true.i143
42 cond_true.i143:         ; preds = %cond_true.i143, %DimensionChannel.exit
43         %tmp9.i140 = getelementptr i64* %tmp13.i137, i64 0              ; <i64*> [#uses=0]
44         %tmp12.i = getelementptr i64* %tmp610.i, i64 0          ; <i64*> [#uses=0]
45         br i1 false, label %bb18.i144, label %cond_true.i143
47 bb18.i144:              ; preds = %cond_true.i143
48         call void @fopen( )
49         %tmp76.i105 = malloc i64, i32 0         ; <i64*> [#uses=3]
50         %tmp674.i = malloc i64, i32 0           ; <i64*> [#uses=2]
51         %tmp1072.i = malloc i64, i32 0          ; <i64*> [#uses=2]
52         %tmp1470.i = malloc i64, i32 0          ; <i64*> [#uses=1]
53         br label %cond_true.i114
55 cond_true.i114:         ; preds = %cond_true.i114, %bb18.i144
56         %tmp17.i108 = getelementptr i64* %tmp76.i105, i64 0             ; <i64*> [#uses=0]
57         %tmp20.i = getelementptr i64* %tmp674.i, i64 0          ; <i64*> [#uses=0]
58         %tmp23.i111 = getelementptr i64* %tmp1470.i, i64 0              ; <i64*> [#uses=0]
59         br i1 false, label %cond_true40.i, label %cond_true.i114
61 cond_true40.i:          ; preds = %cond_true40.i, %cond_true.i114
62         %tmp33.i115 = getelementptr i64* %tmp1072.i, i64 0              ; <i64*> [#uses=0]
63         br i1 false, label %bb142.i, label %cond_true40.i
65 cond_next54.i:          ; preds = %cond_true76.i
66         %tmp57.i = getelementptr i64* %tmp55.i, i64 0           ; <i64*> [#uses=0]
67         br i1 false, label %bb64.i, label %bb69.i
69 bb64.i:         ; preds = %cond_true76.i, %cond_next54.i
70         %tmp67.i117 = getelementptr i64* %tmp76.i105, i64 0             ; <i64*> [#uses=0]
71         br i1 false, label %bb114.i, label %cond_true111.i
73 bb69.i:         ; preds = %cond_next54.i
74         br i1 false, label %bb79.i, label %cond_true76.i
76 cond_true76.i:          ; preds = %bb142.i, %bb69.i
77         %tmp48.i = getelementptr i64* %tmp46.i, i64 0           ; <i64*> [#uses=0]
78         br i1 false, label %bb64.i, label %cond_next54.i
80 bb79.i:         ; preds = %bb69.i
81         br i1 false, label %bb114.i, label %cond_true111.i
83 cond_true111.i:         ; preds = %bb79.i, %bb64.i
84         %tmp84.i127 = getelementptr i64* %tmp46.i, i64 0                ; <i64*> [#uses=0]
85         ret void
87 bb114.i:                ; preds = %bb142.i, %bb79.i, %bb64.i
88         %tmp117.i = getelementptr i64* %tmp76.i105, i64 0               ; <i64*> [#uses=0]
89         %tmp132.i131 = getelementptr i64* %tmp674.i, i64 0              ; <i64*> [#uses=0]
90         %tmp122.i = getelementptr i64* %tmp1072.i, i64 0                ; <i64*> [#uses=0]
91         ret void
93 bb142.i:                ; preds = %cond_true40.i
94         %tmp46.i = load i64** @BOT              ; <i64*> [#uses=2]
95         %tmp55.i = load i64** @TOP              ; <i64*> [#uses=1]
96         br i1 false, label %bb114.i, label %cond_true76.i