xref: /llvm-project/llvm/test/Transforms/IROutliner/opt-remarks.ll (revision f4b925ee7078f058602fd323e25f45f1ae91ca34)
1; RUN: opt -S -passes=verify,iroutliner -o /dev/null \
2; RUN: -pass-remarks=iroutliner -pass-remarks-missed=iroutliner < %s  \
3; RUN: 2>&1 | FileCheck -check-prefix=CHECK %s
4; RUN: opt -S -passes=verify,iroutliner -o /dev/null  \
5; RUN:  -pass-remarks-output=%t < %s
6; RUN: cat %t | FileCheck -check-prefix=YAML %s
7
8; CHECK: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 10 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
9; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 4 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
10; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 0 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
11; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 10 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
12; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 1 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
13; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 11 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
14; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 12 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
15; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 2 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
16; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 3 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
17; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 13 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
18; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 4 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
19; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 14 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
20; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 5 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
21; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 10 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
22; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 11 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
23; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 6 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
24; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 7 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
25; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 17 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
26; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 13 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
27; CHECK-NEXT: remark: <unknown>:0:0: did not outline 2 regions due to estimated increase of 8 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
28; CHECK-NEXT: remark: <unknown>:0:0: outlined 2 regions with decrease of 2 instructions at locations <UNKNOWN LOCATION> <UNKNOWN LOCATION>
29
30; YAML: --- !Missed
31; YAML-NEXT: Pass:            iroutliner
32; YAML-NEXT: Name:            WouldNotDecreaseSize
33; YAML-NEXT: Function:        function3
34; YAML-NEXT: Args:
35; YAML-NEXT:   - String:          'did not outline '
36; YAML-NEXT:   - String:          '2'
37; YAML-NEXT:   - String:          ' regions due to estimated increase of '
38; YAML-NEXT:   - InstructionIncrease: '10'
39; YAML-NEXT:   - String:          ' instructions at locations '
40; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
41; YAML-NEXT:   - String:          ' '
42; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
43; YAML-NEXT: ...
44; YAML-NEXT: --- !Missed
45; YAML-NEXT: Pass:            iroutliner
46; YAML-NEXT: Name:            WouldNotDecreaseSize
47; YAML-NEXT: Function:        function3
48; YAML-NEXT: Args:
49; YAML-NEXT:   - String:          'did not outline '
50; YAML-NEXT:   - String:          '2'
51; YAML-NEXT:   - String:          ' regions due to estimated increase of '
52; YAML-NEXT:   - InstructionIncrease: '4'
53; YAML-NEXT:   - String:          ' instructions at locations '
54; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
55; YAML-NEXT:   - String:          ' '
56; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
57; YAML-NEXT: ...
58; YAML-NEXT: --- !Missed
59; YAML-NEXT: Pass:            iroutliner
60; YAML-NEXT: Name:            WouldNotDecreaseSize
61; YAML-NEXT: Function:        function3
62; YAML-NEXT: Args:
63; YAML-NEXT:   - String:          'did not outline '
64; YAML-NEXT:   - String:          '2'
65; YAML-NEXT:   - String:          ' regions due to estimated increase of '
66; YAML-NEXT:   - InstructionIncrease: '0'
67; YAML-NEXT:   - String:          ' instructions at locations '
68; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
69; YAML-NEXT:   - String:          ' '
70; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
71; YAML-NEXT: ...
72; YAML-NEXT: --- !Missed
73; YAML-NEXT: Pass:            iroutliner
74; YAML-NEXT: Name:            WouldNotDecreaseSize
75; YAML-NEXT: Function:        function1
76; YAML-NEXT: Args:
77; YAML-NEXT:   - String:          'did not outline '
78; YAML-NEXT:   - String:          '2'
79; YAML-NEXT:   - String:          ' regions due to estimated increase of '
80; YAML-NEXT:   - InstructionIncrease: '10'
81; YAML-NEXT:   - String:          ' instructions at locations '
82; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
83; YAML-NEXT:   - String:          ' '
84; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
85; YAML-NEXT: ...
86; YAML-NEXT: --- !Missed
87; YAML-NEXT: Pass:            iroutliner
88; YAML-NEXT: Name:            WouldNotDecreaseSize
89; YAML-NEXT: Function:        function3
90; YAML-NEXT: Args:
91; YAML-NEXT:   - String:          'did not outline '
92; YAML-NEXT:   - String:          '2'
93; YAML-NEXT:   - String:          ' regions due to estimated increase of '
94; YAML-NEXT:   - InstructionIncrease: '1'
95; YAML-NEXT:   - String:          ' instructions at locations '
96; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
97; YAML-NEXT:   - String:          ' '
98; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
99; YAML-NEXT: ...
100; YAML-NEXT: --- !Missed
101; YAML-NEXT: Pass:            iroutliner
102; YAML-NEXT: Name:            WouldNotDecreaseSize
103; YAML-NEXT: Function:        function1
104; YAML-NEXT: Args:
105; YAML-NEXT:   - String:          'did not outline '
106; YAML-NEXT:   - String:          '2'
107; YAML-NEXT:   - String:          ' regions due to estimated increase of '
108; YAML-NEXT:   - InstructionIncrease: '11'
109; YAML-NEXT:   - String:          ' instructions at locations '
110; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
111; YAML-NEXT:   - String:          ' '
112; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
113; YAML-NEXT: ...
114; YAML-NEXT: --- !Missed
115; YAML-NEXT: Pass:            iroutliner
116; YAML-NEXT: Name:            WouldNotDecreaseSize
117; YAML-NEXT: Function:        function1
118; YAML-NEXT: Args:
119; YAML-NEXT:   - String:          'did not outline '
120; YAML-NEXT:   - String:          '2'
121; YAML-NEXT:   - String:          ' regions due to estimated increase of '
122; YAML-NEXT:   - InstructionIncrease: '12'
123; YAML-NEXT:   - String:          ' instructions at locations '
124; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
125; YAML-NEXT:   - String:          ' '
126; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
127; YAML-NEXT: ...
128; YAML-NEXT: --- !Missed
129; YAML-NEXT: Pass:            iroutliner
130; YAML-NEXT: Name:            WouldNotDecreaseSize
131; YAML-NEXT: Function:        function3
132; YAML-NEXT: Args:
133; YAML-NEXT:   - String:          'did not outline '
134; YAML-NEXT:   - String:          '2'
135; YAML-NEXT:   - String:          ' regions due to estimated increase of '
136; YAML-NEXT:   - InstructionIncrease: '2'
137; YAML-NEXT:   - String:          ' instructions at locations '
138; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
139; YAML-NEXT:   - String:          ' '
140; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
141; YAML-NEXT: ...
142; YAML-NEXT: --- !Missed
143; YAML-NEXT: Pass:            iroutliner
144; YAML-NEXT: Name:            WouldNotDecreaseSize
145; YAML-NEXT: Function:        function3
146; YAML-NEXT: Args:
147; YAML-NEXT:   - String:          'did not outline '
148; YAML-NEXT:   - String:          '2'
149; YAML-NEXT:   - String:          ' regions due to estimated increase of '
150; YAML-NEXT:   - InstructionIncrease: '3'
151; YAML-NEXT:   - String:          ' instructions at locations '
152; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
153; YAML-NEXT:   - String:          ' '
154; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
155; YAML-NEXT: ...
156; YAML-NEXT: --- !Missed
157; YAML-NEXT: Pass:            iroutliner
158; YAML-NEXT: Name:            WouldNotDecreaseSize
159; YAML-NEXT: Function:        function1
160; YAML-NEXT: Args:
161; YAML-NEXT:   - String:          'did not outline '
162; YAML-NEXT:   - String:          '2'
163; YAML-NEXT:   - String:          ' regions due to estimated increase of '
164; YAML-NEXT:   - InstructionIncrease: '13'
165; YAML-NEXT:   - String:          ' instructions at locations '
166; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
167; YAML-NEXT:   - String:          ' '
168; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
169; YAML-NEXT: ...
170; YAML-NEXT: --- !Missed
171; YAML-NEXT: Pass:            iroutliner
172; YAML-NEXT: Name:            WouldNotDecreaseSize
173; YAML-NEXT: Function:        function3
174; YAML-NEXT: Args:
175; YAML-NEXT:   - String:          'did not outline '
176; YAML-NEXT:   - String:          '2'
177; YAML-NEXT:   - String:          ' regions due to estimated increase of '
178; YAML-NEXT:   - InstructionIncrease: '4'
179; YAML-NEXT:   - String:          ' instructions at locations '
180; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
181; YAML-NEXT:   - String:          ' '
182; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
183; YAML-NEXT: ...
184; YAML-NEXT: --- !Missed
185; YAML-NEXT: Pass:            iroutliner
186; YAML-NEXT: Name:            WouldNotDecreaseSize
187; YAML-NEXT: Function:        function1
188; YAML-NEXT: Args:
189; YAML-NEXT:   - String:          'did not outline '
190; YAML-NEXT:   - String:          '2'
191; YAML-NEXT:   - String:          ' regions due to estimated increase of '
192; YAML-NEXT:   - InstructionIncrease: '14'
193; YAML-NEXT:   - String:          ' instructions at locations '
194; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
195; YAML-NEXT:   - String:          ' '
196; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
197; YAML-NEXT: ...
198; YAML-NEXT: --- !Missed
199; YAML-NEXT: Pass:            iroutliner
200; YAML-NEXT: Name:            WouldNotDecreaseSize
201; YAML-NEXT: Function:        function3
202; YAML-NEXT: Args:
203; YAML-NEXT:   - String:          'did not outline '
204; YAML-NEXT:   - String:          '2'
205; YAML-NEXT:   - String:          ' regions due to estimated increase of '
206; YAML-NEXT:   - InstructionIncrease: '5'
207; YAML-NEXT:   - String:          ' instructions at locations '
208; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
209; YAML-NEXT:   - String:          ' '
210; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
211; YAML-NEXT: ...
212; YAML-NEXT: --- !Missed
213; YAML-NEXT: Pass:            iroutliner
214; YAML-NEXT: Name:            WouldNotDecreaseSize
215; YAML-NEXT: Function:        function1
216; YAML-NEXT: Args:
217; YAML-NEXT:   - String:          'did not outline '
218; YAML-NEXT:   - String:          '2'
219; YAML-NEXT:   - String:          ' regions due to estimated increase of '
220; YAML-NEXT:   - InstructionIncrease: '10'
221; YAML-NEXT:   - String:          ' instructions at locations '
222; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
223; YAML-NEXT:   - String:          ' '
224; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
225; YAML-NEXT: ...
226; YAML-NEXT: --- !Missed
227; YAML-NEXT: Pass:            iroutliner
228; YAML-NEXT: Name:            WouldNotDecreaseSize
229; YAML-NEXT: Function:        function1
230; YAML-NEXT: Args:
231; YAML-NEXT:   - String:          'did not outline '
232; YAML-NEXT:   - String:          '2'
233; YAML-NEXT:   - String:          ' regions due to estimated increase of '
234; YAML-NEXT:   - InstructionIncrease: '11'
235; YAML-NEXT:   - String:          ' instructions at locations '
236; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
237; YAML-NEXT:   - String:          ' '
238; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
239; YAML-NEXT: ...
240; YAML-NEXT: --- !Missed
241; YAML-NEXT: Pass:            iroutliner
242; YAML-NEXT: Name:            WouldNotDecreaseSize
243; YAML-NEXT: Function:        function3
244; YAML-NEXT: Args:
245; YAML-NEXT:   - String:          'did not outline '
246; YAML-NEXT:   - String:          '2'
247; YAML-NEXT:   - String:          ' regions due to estimated increase of '
248; YAML-NEXT:   - InstructionIncrease: '6'
249; YAML-NEXT:   - String:          ' instructions at locations '
250; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
251; YAML-NEXT:   - String:          ' '
252; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
253; YAML-NEXT: ...
254; YAML-NEXT: --- !Missed
255; YAML-NEXT: Pass:            iroutliner
256; YAML-NEXT: Name:            WouldNotDecreaseSize
257; YAML-NEXT: Function:        function3
258; YAML-NEXT: Args:
259; YAML-NEXT:   - String:          'did not outline '
260; YAML-NEXT:   - String:          '2'
261; YAML-NEXT:   - String:          ' regions due to estimated increase of '
262; YAML-NEXT:   - InstructionIncrease: '7'
263; YAML-NEXT:   - String:          ' instructions at locations '
264; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
265; YAML-NEXT:   - String:          ' '
266; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
267; YAML-NEXT: ...
268; YAML-NEXT: --- !Missed
269; YAML-NEXT: Pass:            iroutliner
270; YAML-NEXT: Name:            WouldNotDecreaseSize
271; YAML-NEXT: Function:        function1
272; YAML-NEXT: Args:
273; YAML-NEXT:   - String:          'did not outline '
274; YAML-NEXT:   - String:          '2'
275; YAML-NEXT:   - String:          ' regions due to estimated increase of '
276; YAML-NEXT:   - InstructionIncrease: '17'
277; YAML-NEXT:   - String:          ' instructions at locations '
278; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
279; YAML-NEXT:   - String:          ' '
280; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
281; YAML-NEXT: ...
282; YAML-NEXT: --- !Missed
283; YAML-NEXT: Pass:            iroutliner
284; YAML-NEXT: Name:            WouldNotDecreaseSize
285; YAML-NEXT: Function:        function1
286; YAML-NEXT: Args:
287; YAML-NEXT:   - String:          'did not outline '
288; YAML-NEXT:   - String:          '2'
289; YAML-NEXT:   - String:          ' regions due to estimated increase of '
290; YAML-NEXT:   - InstructionIncrease: '13'
291; YAML-NEXT:   - String:          ' instructions at locations '
292; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
293; YAML-NEXT:   - String:          ' '
294; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
295; YAML-NEXT: ...
296; YAML-NEXT: --- !Missed
297; YAML-NEXT: Pass:            iroutliner
298; YAML-NEXT: Name:            WouldNotDecreaseSize
299; YAML-NEXT: Function:        function3
300; YAML-NEXT: Args:
301; YAML-NEXT:   - String:          'did not outline '
302; YAML-NEXT:   - String:          '2'
303; YAML-NEXT:   - String:          ' regions due to estimated increase of '
304; YAML-NEXT:   - InstructionIncrease: '8'
305; YAML-NEXT:   - String:          ' instructions at locations '
306; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
307; YAML-NEXT:   - String:          ' '
308; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
309; YAML-NEXT: ...
310; YAML-NEXT: --- !Passed
311; YAML-NEXT: Pass:            iroutliner
312; YAML-NEXT: Name:            Outlined
313; YAML-NEXT: Function:        function3.outlined
314; YAML-NEXT: Args:
315; YAML-NEXT:   - String:          'outlined '
316; YAML-NEXT:   - String:          '2'
317; YAML-NEXT:   - String:          ' regions with decrease of '
318; YAML-NEXT:   - Benefit:         '2'
319; YAML-NEXT:   - String:          ' instructions at locations '
320; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
321; YAML-NEXT:   - String:          ' '
322; YAML-NEXT:   - DebugLoc:        '<UNKNOWN LOCATION>'
323; YAML-NEXT: ...
324
325define void @function1() #0 {
326entry:
327  %a = alloca i32, align 4
328  %b = alloca i32, align 4
329  %output = alloca i32, align 4
330  %result = alloca i32, align 4
331  store i32 2, ptr %a, align 4
332  store i32 3, ptr %b, align 4
333  %0 = load i32, ptr %a, align 4
334  %1 = load i32, ptr %b, align 4
335  %add = add i32 %0, %1
336  store i32 %add, ptr %output, align 4
337  %2 = load i32, ptr %output, align 4
338  %3 = load i32, ptr %output, align 4
339  %mul = mul i32 %2, %add
340  store i32 %mul, ptr %result, align 4
341  ret void
342}
343
344define void @function2() #0 {
345entry:
346  %a = alloca i32, align 4
347  %b = alloca i32, align 4
348  %output = alloca i32, align 4
349  %result = alloca i32, align 4
350  store i32 2, ptr %a, align 4
351  store i32 3, ptr %b, align 4
352  %0 = load i32, ptr %a, align 4
353  %1 = load i32, ptr %b, align 4
354  %add = add i32 %0, %1
355  store i32 %add, ptr %output, align 4
356  %2 = load i32, ptr %output, align 4
357  %3 = load i32, ptr %output, align 4
358  %mul = mul i32 %2, %add
359  store i32 %mul, ptr %result, align 4
360  ret void
361}
362
363define void @function3() #0 {
364entry:
365  %a = alloca i32, align 4
366  %b = alloca i32, align 4
367  %0 = load i32, ptr %a, align 4
368  %1 = load i32, ptr %b, align 4
369  %add = add i32 %0, %1
370  %mul = mul i32 %0, %1
371  %sub = sub i32 %0, %1
372  %div = sdiv i32 %0, %1
373  %add1 = add i32 %0, %1
374  %mul1 = mul i32 %0, %1
375  %sub1 = sub i32 %0, %1
376  %div1 = sdiv i32 %0, %1
377  %add2 = add i32 %0, %1
378  %mul2 = mul i32 %0, %1
379  %sub2 = sub i32 %0, %1
380  %div2 = sdiv i32 %0, %1
381  %mul3 = mul i32 %0, %1
382  ret void
383}
384
385define void @function4() #0 {
386entry:
387  %a = alloca i32, align 4
388  %b = alloca i32, align 4
389  %0 = load i32, ptr %a, align 4
390  %1 = load i32, ptr %b, align 4
391  %add = add i32 %0, %1
392  %mul = mul i32 %0, %1
393  %sub = sub i32 %0, %1
394  %div = sdiv i32 %0, %1
395  %add1 = add i32 %0, %1
396  %mul1 = mul i32 %0, %1
397  %sub1 = sub i32 %0, %1
398  %div1 = sdiv i32 %0, %1
399  %add2 = add i32 %0, %1
400  %mul2 = mul i32 %0, %1
401  %sub2 = sub i32 %0, %1
402  %div2 = sdiv i32 %0, %1
403  %div3 = sdiv i32 %0, %1
404  ret void
405}
406