Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / docs / DataFlowAnalysisIntroImages / OutputParameterIdentificationLattice.svg
blob5658587c2ee6271ea67b093e997b85e965007336
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <svg
3 xmlns:dc="http://purl.org/dc/elements/1.1/"
4 xmlns:cc="http://creativecommons.org/ns#"
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6 xmlns:svg="http://www.w3.org/2000/svg"
7 xmlns="http://www.w3.org/2000/svg"
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10 id="svg8"
11 version="1.1"
12 viewBox="0 0 200 150"
13 height="150mm"
14 width="200mm">
15 <defs
16 id="defs2">
17 <marker
18 inkscape:stockid="Arrow2Lend"
19 orient="auto"
20 refY="0"
21 refX="0"
22 id="marker1403"
23 style="overflow:visible"
24 inkscape:isstock="true">
25 <path
26 id="path1401"
27 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
28 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
29 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
30 </marker>
31 <marker
32 inkscape:stockid="Arrow2Lend"
33 orient="auto"
34 refY="0"
35 refX="0"
36 id="marker1393"
37 style="overflow:visible"
38 inkscape:isstock="true">
39 <path
40 id="path1391"
41 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
42 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
43 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
44 </marker>
45 <marker
46 inkscape:stockid="Arrow2Lend"
47 orient="auto"
48 refY="0"
49 refX="0"
50 id="marker1383"
51 style="overflow:visible"
52 inkscape:isstock="true">
53 <path
54 id="path1381"
55 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
56 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
57 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
58 </marker>
59 <marker
60 inkscape:stockid="Arrow2Lend"
61 orient="auto"
62 refY="0"
63 refX="0"
64 id="marker1373"
65 style="overflow:visible"
66 inkscape:isstock="true">
67 <path
68 id="path1371"
69 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
70 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
71 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
72 </marker>
73 <marker
74 inkscape:stockid="Arrow2Lend"
75 orient="auto"
76 refY="0"
77 refX="0"
78 id="marker1363"
79 style="overflow:visible"
80 inkscape:isstock="true">
81 <path
82 id="path1361"
83 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
84 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
85 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
86 </marker>
87 <marker
88 inkscape:stockid="Arrow2Lend"
89 orient="auto"
90 refY="0"
91 refX="0"
92 id="marker1353"
93 style="overflow:visible"
94 inkscape:isstock="true">
95 <path
96 id="path1351"
97 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
98 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
99 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
100 </marker>
101 <marker
102 inkscape:stockid="Arrow2Lend"
103 orient="auto"
104 refY="0"
105 refX="0"
106 id="marker1343"
107 style="overflow:visible"
108 inkscape:isstock="true">
109 <path
110 id="path1341"
111 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
112 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
113 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
114 </marker>
115 <marker
116 inkscape:stockid="Arrow2Lend"
117 orient="auto"
118 refY="0"
119 refX="0"
120 id="marker1333"
121 style="overflow:visible"
122 inkscape:isstock="true">
123 <path
124 id="path1331"
125 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
126 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
127 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
128 </marker>
129 <marker
130 inkscape:stockid="Arrow2Lend"
131 orient="auto"
132 refY="0"
133 refX="0"
134 id="marker1323"
135 style="overflow:visible"
136 inkscape:isstock="true">
137 <path
138 id="path1321"
139 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
140 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
141 transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
142 </marker>
143 </defs>
145 id="layer1"
146 inkscape:groupmode="layer"
147 inkscape:label="Layer 1">
148 <text
149 id="text855"
150 y="140.22917"
151 x="15.875002"
152 style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
153 xml:space="preserve"><tspan
154 dx="0"
155 style="font-size:4.93889px;stroke-width:0.264583"
156 y="140.22917"
157 x="15.875002"
158 id="tspan853"
159 sodipodi:role="line">Overwritten: {p-&gt;x, p-&gt;y, p-&gt;z}</tspan></text>
160 <text
161 xml:space="preserve"
162 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
163 x="108.47917"
164 y="140.22917"
165 id="text855-4"><tspan
166 sodipodi:role="line"
167 id="tspan853-1"
168 x="108.47917"
169 y="140.22917"
170 style="font-size:4.9389px;stroke-width:0.264583"
171 dx="0">Overwritten: {p-&gt;x, p-&gt;z}</tspan></text>
172 <text
173 id="text855-4-1"
174 y="119.06249"
175 x="66.145836"
176 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
177 xml:space="preserve"><tspan
178 dx="0"
179 style="font-size:4.9389px;stroke-width:0.264583"
180 y="119.06249"
181 x="66.145836"
182 id="tspan853-1-1"
183 sodipodi:role="line">Overwritten: {p-&gt;x, p-&gt;z}</tspan></text>
184 <text
185 id="text855-4-19"
186 y="111.12498"
187 x="140.22916"
188 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
189 xml:space="preserve"><tspan
190 dx="0"
191 style="font-size:4.9389px;stroke-width:0.264583"
192 y="111.12498"
193 x="140.22916"
194 id="tspan853-1-0"
195 sodipodi:role="line">Overwritten: {p-&gt;q}</tspan></text>
196 <text
197 id="text855-4-2"
198 y="95.249992"
199 x="103.1875"
200 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
201 xml:space="preserve"><tspan
202 dx="0"
203 style="font-size:4.9389px;stroke-width:0.264583"
204 y="95.249992"
205 x="103.1875"
206 id="tspan853-1-00"
207 sodipodi:role="line">Overwritten: {}</tspan></text>
208 <path
209 sodipodi:nodetypes="cc"
210 id="path909"
211 d="M 66.145835,134.93749 100.54167,121.70832"
212 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1393)" />
213 <path
214 sodipodi:nodetypes="cc"
215 id="path911"
216 d="m 140.22917,134.93749 -39.6875,-13.22917"
217 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1403)" />
218 <path
219 sodipodi:nodetypes="cc"
220 id="path913"
221 d="M 100.54167,113.77082 123.03126,96.572903"
222 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1373)" />
223 <path
224 sodipodi:nodetypes="cc"
225 id="path915"
226 d="M 161.39584,105.83332 123.03126,96.572903"
227 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1383)" />
228 <text
229 xml:space="preserve"
230 style="font-size:6.35px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
231 x="7.9375"
232 y="92.604179"
233 id="text855-4-2-6"><tspan
234 sodipodi:role="line"
235 id="tspan853-1-00-3"
236 x="7.9375"
237 y="92.604179"
238 style="font-size:6.35px;stroke-width:0.264583">Normal states</tspan></text>
239 <rect
240 y="84.666672"
241 x="2.6458333"
242 height="60.854164"
243 width="195.79167"
244 id="rect935"
245 style="fill:none;stroke:#000000;stroke-width:0.264999" />
246 <rect
247 y="2.6458333"
248 x="2.6458333"
249 height="71.4375"
250 width="195.79167"
251 id="rect937"
252 style="fill:none;stroke:#000000;stroke-width:0.264999" />
253 <text
254 id="text855-4-2-6-8"
255 y="10.583333"
256 x="7.9375"
257 style="font-size:6.35px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
258 xml:space="preserve"><tspan
259 style="font-size:6.35px;stroke-width:0.264583"
260 y="10.583333"
261 x="7.9375"
262 id="tspan853-1-00-3-4"
263 sodipodi:role="line">Failure states</tspan></text>
264 <text
265 xml:space="preserve"
266 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
267 x="5.2916665"
268 y="68.791672"
269 id="text855-4-2-8"><tspan
270 sodipodi:role="line"
271 id="tspan853-1-00-5"
272 x="5.2916665"
273 y="68.791672"
274 style="font-size:4.9389px;stroke-width:0.264583">{Unsafe read at line 3}</tspan></text>
275 <text
276 id="text855-4-2-8-1"
277 y="68.791672"
278 x="66.145836"
279 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
280 xml:space="preserve"><tspan
281 style="font-size:4.9389px;stroke-width:0.264583"
282 y="68.791672"
283 x="66.145836"
284 id="tspan853-1-00-5-1"
285 sodipodi:role="line">{Pointer escape at line 5}</tspan></text>
286 <text
287 id="text855-4-2-8-8"
288 y="68.791672"
289 x="134.9375"
290 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
291 xml:space="preserve"><tspan
292 style="font-size:4.9389px;stroke-width:0.264583"
293 y="68.791672"
294 x="134.9375"
295 id="tspan853-1-00-5-8"
296 sodipodi:role="line">{Unsafe read at line 7}</tspan></text>
297 <text
298 id="text855-4-2-8-9"
299 y="44.979164"
300 x="7.9375"
301 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
302 xml:space="preserve"><tspan
303 style="font-size:4.9389px;stroke-width:0.264583"
304 y="44.979164"
305 x="7.9375"
306 id="tspan853-1-00-5-4"
307 sodipodi:role="line">{Unsafe read at line 3, Pointer escape at line 5}</tspan></text>
308 <path
309 id="path1019"
310 d="m 31.75,63.499999 31.749999,-15.875"
311 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1333)" />
312 <path
313 id="path1021"
314 d="m 100.54167,63.499999 -37.041671,-15.875"
315 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1343)" />
316 <text
317 xml:space="preserve"
318 style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;word-spacing:0px;stroke-width:0.264583"
319 x="10.583333"
320 y="23.812502"
321 id="text855-4-2-8-9-8"><tspan
322 id="tspan1041"
323 sodipodi:role="line"
324 x="10.583333"
325 y="23.812502"
326 style="font-size:4.9389px;stroke-width:0.264583">{Unsafe read at line 3, Pointer escape at line 5, Unsafe read at line 7}</tspan></text>
327 <path
328 id="path1045"
329 d="M 74.083332,39.687499 124.35417,26.458333"
330 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1353)" />
331 <path
332 id="path1047"
333 d="M 161.39583,63.499999 124.35417,26.458333"
334 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1363)" />
335 <path
336 id="path1049"
337 d="M 100.54167,84.666666 V 74.083333"
338 style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1323)" />
339 </g>
340 </svg>