[PowerPC] Recommit r314244 with refactoring and off by default
[llvm-core.git] / test / CodeGen / AArch64 / machine-outliner-remarks.ll
blob1a237a2403ea5f9f92c3e12450caaa13c9ad7aca
1 ; RUN: llc %s -enable-machine-outliner -mtriple=aarch64-unknown-unknown -pass-remarks=machine-outliner -pass-remarks-missed=machine-outliner -o /dev/null 2>&1 | FileCheck %s
2 ; CHECK: machine-outliner-remarks.ll:5:9:
3 ; CHECK-SAME: Did not outline 2 instructions from 2 locations.
4 ; CHECK-SAME: Instructions from outlining all occurrences (9) >=
5 ; CHECK-SAME: Unoutlined instruction count (4)
6 ; CHECK-SAME: (Also found at: machine-outliner-remarks.ll:13:9)
7 ; CHECK: remark: <unknown>:0:0: Saved 5 instructions by outlining 7 instructions
8 ; CHECK-SAME: from 2 locations. (Found at: machine-outliner-remarks.ll:27:9,
9 ; CHECK-SAME: machine-outliner-remarks.ll:36:1)
10 ; RUN: llc %s -enable-machine-outliner -mtriple=aarch64-unknown-unknown -o /dev/null -pass-remarks-missed=machine-outliner -pass-remarks-output=%t.yaml
11 ; RUN: cat %t.yaml | FileCheck %s -check-prefix=YAML
12 ; YAML: --- !Missed
13 ; YAML-NEXT: Pass:            machine-outliner
14 ; YAML-NEXT: Name:            NotOutliningCheaper
15 ; YAML-NEXT: DebugLoc:        { File: machine-outliner-remarks.ll, Line: 5, Column: 9 }
16 ; YAML-NEXT: Function:        dog
17 ; YAML-NEXT: Args:            
18 ; YAML-NEXT:   - String:          'Did not outline '
19 ; YAML-NEXT:   - Length:          '2'
20 ; YAML-NEXT:   - String:          ' instructions'
21 ; YAML-NEXT:   - String:          ' from '
22 ; YAML-NEXT:   - NumOccurrences:  '2'
23 ; YAML-NEXT:   - String:          ' locations.'
24 ; YAML-NEXT:   - String:          ' Instructions from outlining all occurrences ('
25 ; YAML-NEXT:   - OutliningCost:   '9'
26 ; YAML-NEXT:   - String:          ')'
27 ; YAML-NEXT:   - String:          ' >= Unoutlined instruction count ('
28 ; YAML-NEXT:   - NotOutliningCost: '4'
29 ; YAML-NEXT:   - String:          ')'
30 ; YAML-NEXT:   - String:          ' (Also found at: '
31 ; YAML-NEXT:   - OtherStartLoc1:  'machine-outliner-remarks.ll:13:9'
32 ; YAML-NEXT:     DebugLoc:        { File: machine-outliner-remarks.ll, Line: 13, Column: 9 }
33 ; YAML-NEXT:   - String:          ')'
34 ; YAML: --- !Passed
35 ; YAML-NEXT: Pass:            machine-outliner
36 ; YAML-NEXT: Name:            OutlinedFunction
37 ; YAML-NEXT: Function:        OUTLINED_FUNCTION_0
38 ; YAML-NEXT: Args:            
39 ; YAML-NEXT:   - String:          'Saved '
40 ; YAML-NEXT:   - OutliningBenefit: '5'
41 ; YAML-NEXT:   - String:          ' instructions by '
42 ; YAML-NEXT:   - String:          'outlining '
43 ; YAML-NEXT:   - Length:          '7'
44 ; YAML-NEXT:   - String:          ' instructions '
45 ; YAML-NEXT:   - String:          'from '
46 ; YAML-NEXT:   - NumOccurrences:  '2'
47 ; YAML-NEXT:   - String:          ' locations. '
48 ; YAML-NEXT:   - String:          '(Found at: '
49 ; YAML-NEXT:   - StartLoc0:       'machine-outliner-remarks.ll:27:9'
50 ; YAML-NEXT:     DebugLoc:        { File: machine-outliner-remarks.ll, Line: 27, Column: 9 }
51 ; YAML-NEXT:   - String:          ', '
52 ; YAML-NEXT:   - StartLoc1:       'machine-outliner-remarks.ll:36:1'
53 ; YAML-NEXT:     DebugLoc:        { File: machine-outliner-remarks.ll, Line: 36, Column: 1 }
54 ; YAML-NEXT:   - String:          ')'
56 define void @dog() #0 !dbg !8 {
57 entry:
58   %x = alloca i32, align 4
59   %y = alloca i32, align 4
60   store i32 0, i32* %x, align 4
61   store i32 1, i32* %y, align 4, !dbg !12
62   ret void
65 define void @cat() #0 !dbg !14 {
66 entry:
67   %x = alloca i32, align 4
68   %y = alloca i32, align 4
69   store i32 0, i32* %x, align 4
70   store i32 1, i32* %y, align 4, !dbg !16
71   ret void
74 define void @foo() #0 !dbg !18 {
75   %1 = alloca i32, align 4
76   %2 = alloca i32, align 4
77   %3 = alloca i32, align 4
78   %4 = alloca i32, align 4
79   store i32 0, i32* %1, align 4
80   store i32 1, i32* %2, align 4, !dbg !24
81   store i32 2, i32* %3, align 4
82   store i32 3, i32* %4, align 4, !dbg !26
83   ret void
86 define void @bar() #0 !dbg !27 {
87   %1 = alloca i32, align 4
88   %2 = alloca i32, align 4
89   %3 = alloca i32, align 4
90   %4 = alloca i32, align 4
91   store i32 0, i32* %1, align 4
92   store i32 1, i32* %2, align 4, !dbg !33
93   store i32 2, i32* %3, align 4
94   store i32 3, i32* %4, align 4, !dbg !35
95   ret void
98 attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="false" "target-cpu"="cyclone" }
100 !llvm.dbg.cu = !{!0}
101 !llvm.module.flags = !{!3, !4, !5, !6}
102 !llvm.ident = !{!7}
104 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
105 !1 = !DIFile(filename: "machine-outliner-remarks.ll", directory: "/tmp")
106 !2 = !{}
107 !3 = !{i32 2, !"Dwarf Version", i32 4}
108 !4 = !{i32 2, !"Debug Info Version", i32 3}
109 !5 = !{i32 1, !"wchar_size", i32 4}
110 !6 = !{i32 7, !"PIC Level", i32 2}
111 !7 = !{!""}
112 !8 = distinct !DISubprogram(name: "dog", scope: !1, file: !1, line: 2, type: !9, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
113 !9 = !DISubroutineType(types: !10)
114 !10 = !{null}
115 !12 = !DILocation(line: 5, column: 9, scope: !8)
116 !14 = distinct !DISubprogram(name: "cat", scope: !1, file: !1, line: 10, type: !9, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
117 !16 = !DILocation(line: 13, column: 9, scope: !14)
118 !18 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 26, type: !9, isLocal: false, isDefinition: true, scopeLine: 26, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
119 !24 = !DILocation(line: 27, column: 9, scope: !18)
120 !26 = !DILocation(line: 29, column: 9, scope: !18)
121 !27 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 35, type: !9, isLocal: false, isDefinition: true, scopeLine: 35, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
122 !33 = !DILocation(line: 36, column: 1, scope: !27)
123 !35 = !DILocation(line: 38, column: 1, scope: !27)