blob: 40c6629e6f4f2ed60f167f51461df925318713af [file] [log] [blame]
Jay Foad80be2a22011-06-21 08:33:49 +00001; RUN: opt %s -loop-deletion -disable-output
2
3target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
4
5%0 = type { %"class.llvm::SmallVectorImpl", [1 x %"union.llvm::SmallVectorBase::U"] }
6%"class.clang::SourceLocation" = type { i32 }
7%"class.clang::driver::Arg" = type { %"class.clang::driver::Option"*, %"class.clang::driver::Arg"*, i32, i8, %0 }
8%"class.clang::driver::Option" = type { i32 (...)**, i32, %"class.clang::SourceLocation", i8*, %"class.clang::driver::OptionGroup"*, %"class.clang::driver::Option"*, i8 }
9%"class.clang::driver::OptionGroup" = type { %"class.clang::driver::Option" }
10%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8*, %"union.llvm::SmallVectorBase::U" }
11%"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" }
12%"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" }
13%"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase" }
14%"union.llvm::SmallVectorBase::U" = type { x86_fp80 }
15
16define void @_ZNK5clang6driver7ArgList20AddAllArgsTranslatedERN4llvm11SmallVectorIPKcLj16EEENS0_12OptSpecifierES5_b(i1 zeroext %Joined) nounwind align 2 {
17entry:
18 br i1 undef, label %entry.split.us, label %entry.entry.split_crit_edge
19
20entry.entry.split_crit_edge: ; preds = %entry
21 br label %entry.split
22
23entry.split.us: ; preds = %entry
24 br label %for.cond.i14.us
25
26for.cond.i14.us: ; preds = %for.inc.i38.us, %entry.split.us
27 br i1 true, label %for.cond.i50.us-lcssa.us, label %if.end.i23.us
28
29for.inc.i38.us: ; preds = %if.end.i23.us
30 br label %for.cond.i14.us
31
32if.end.i23.us: ; preds = %for.cond.i14.us
33 br i1 true, label %for.cond.i50.us-lcssa.us, label %for.inc.i38.us
34
35for.cond.i50.us-lcssa.us: ; preds = %if.end.i23.us, %for.cond.i14.us
36 br label %for.cond.i50
37
38entry.split: ; preds = %entry.entry.split_crit_edge
39 br label %for.cond.i14
40
41for.cond.i14: ; preds = %for.inc.i38, %entry.split
42 br i1 undef, label %for.cond.i50.us-lcssa, label %if.end.i23
43
44if.end.i23: ; preds = %for.cond.i14
45 br i1 undef, label %for.cond.i50.us-lcssa, label %for.inc.i38
46
47for.inc.i38: ; preds = %if.end.i23
48 br label %for.cond.i14
49
50for.cond.i50.us-lcssa: ; preds = %if.end.i23, %for.cond.i14
51 br label %for.cond.i50
52
53for.cond.i50: ; preds = %for.cond.i50.us-lcssa, %for.cond.i50.us-lcssa.us
54 br label %for.cond
55
56for.cond.loopexit.us-lcssa: ; preds = %if.end.i, %for.cond.i
57 br label %for.cond.loopexit
58
59for.cond.loopexit: ; preds = %for.cond.loopexit.us-lcssa.us, %for.cond.loopexit.us-lcssa
60 br label %for.cond
61
62for.cond: ; preds = %for.cond.loopexit, %for.cond.i50
63 br i1 undef, label %for.end, label %for.body
64
65for.body: ; preds = %for.cond
66 br i1 %Joined, label %if.then, label %if.else
67
68if.then: ; preds = %for.body
69 br i1 undef, label %cond.false.i.i, label %_ZN4llvm9StringRefC1EPKc.exit
70
71cond.false.i.i: ; preds = %if.then
72 unreachable
73
74_ZN4llvm9StringRefC1EPKc.exit: ; preds = %if.then
75 br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit, label %cond.false.i.i91
76
77cond.false.i.i91: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
78 unreachable
79
80_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
81 br i1 undef, label %cond.false.i.i.i, label %if.end13.i.i.i.i
82
83if.end13.i.i.i.i: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
84 br i1 undef, label %land.lhs.true16.i.i.i.i, label %if.end19.i.i.i.i
85
86land.lhs.true16.i.i.i.i: ; preds = %if.end13.i.i.i.i
87 br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i
88
89_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i: ; preds = %land.lhs.true16.i.i.i.i
90 br i1 undef, label %cond.false.i.i.i, label %if.end19.i.i.i.i
91
92if.end19.i.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %if.end13.i.i.i.i
93 br i1 undef, label %land.lhs.true22.i.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
94
95land.lhs.true22.i.i.i.i: ; preds = %if.end19.i.i.i.i
96 br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i
97
98_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i: ; preds = %land.lhs.true22.i.i.i.i
99 br i1 undef, label %cond.false.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
100
101cond.false.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %land.lhs.true22.i.i.i.i, %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %land.lhs.true16.i.i.i.i, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
102 unreachable
103
104_ZN4llvmplERKNS_9StringRefEPKc.exit: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %if.end19.i.i.i.i
105 br i1 undef, label %Retry.i, label %if.end.i99
106
107Retry.i: ; preds = %if.end.i99, %_ZN4llvmplERKNS_9StringRefEPKc.exit
108 br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit, label %new.notnull.i
109
110new.notnull.i: ; preds = %Retry.i
111 br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
112
113if.end.i99: ; preds = %_ZN4llvmplERKNS_9StringRefEPKc.exit
114 br label %Retry.i
115
116_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit: ; preds = %new.notnull.i, %Retry.i
117 br label %for.cond.i.preheader
118
119if.else: ; preds = %for.body
120 br i1 undef, label %Retry.i108, label %if.end.i113
121
122Retry.i108: ; preds = %if.end.i113, %if.else
123 br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114, label %new.notnull.i110
124
125new.notnull.i110: ; preds = %Retry.i108
126 br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
127
128if.end.i113: ; preds = %if.else
129 br label %Retry.i108
130
131_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114: ; preds = %new.notnull.i110, %Retry.i108
132 br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125, label %cond.false.i.i123
133
134cond.false.i.i123: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
135 unreachable
136
137_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
138 br i1 undef, label %Retry.i134, label %if.end.i139
139
140Retry.i134: ; preds = %if.end.i139, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
141 br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, label %new.notnull.i136
142
143new.notnull.i136: ; preds = %Retry.i134
144 br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140
145
146if.end.i139: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
147 br label %Retry.i134
148
149_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140: ; preds = %new.notnull.i136, %Retry.i134
150 br label %for.cond.i.preheader
151
152for.cond.i.preheader: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
153 br i1 undef, label %for.cond.i.preheader.split.us, label %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
154
155for.cond.i.preheader.for.cond.i.preheader.split_crit_edge: ; preds = %for.cond.i.preheader
156 br label %for.cond.i.preheader.split
157
158for.cond.i.preheader.split.us: ; preds = %for.cond.i.preheader
159 br label %for.cond.i.us
160
161for.cond.i.us: ; preds = %if.end.i.us, %for.cond.i.preheader.split.us
162 br i1 true, label %for.cond.loopexit.us-lcssa.us, label %if.end.i.us
163
164if.end.i.us: ; preds = %for.cond.i.us
165 br i1 true, label %for.cond.loopexit.us-lcssa.us, label %for.cond.i.us
166
167for.cond.loopexit.us-lcssa.us: ; preds = %if.end.i.us, %for.cond.i.us
168 %tmp178218.us.lcssa = phi %"class.clang::driver::Arg"** [ undef, %if.end.i.us ], [ undef, %for.cond.i.us ]
169 br label %for.cond.loopexit
170
171for.cond.i.preheader.split: ; preds = %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
172 br label %for.cond.i
173
174for.cond.i: ; preds = %if.end.i, %for.cond.i.preheader.split
175 br i1 undef, label %for.cond.loopexit.us-lcssa, label %if.end.i
176
177if.end.i: ; preds = %for.cond.i
178 br i1 undef, label %for.cond.loopexit.us-lcssa, label %for.cond.i
179
180for.end: ; preds = %for.cond
181 ret void
182}