File: mlir-pass-pipeline.f90

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,696 kB
  • sloc: cpp: 7,438,781; ansic: 1,393,871; asm: 1,012,926; python: 241,771; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 8,596; ml: 5,082; perl: 4,730; makefile: 3,591; awk: 3,523; javascript: 2,251; xml: 892; fortran: 672
file content (152 lines) | stat: -rw-r--r-- 5,614 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
! Test the MLIR pass pipeline

! RUN: %flang_fc1 -S -mmlir --mlir-pass-statistics -mmlir --mlir-pass-statistics-display=pipeline -o /dev/null %s 2>&1 | FileCheck --check-prefixes=ALL %s
! -O0 is the default:
! RUN: %flang_fc1 -S -mmlir --mlir-pass-statistics -mmlir --mlir-pass-statistics-display=pipeline %s -O0 -o /dev/null 2>&1 | FileCheck --check-prefixes=ALL %s
! RUN: %flang_fc1 -S -mmlir --mlir-pass-statistics -mmlir --mlir-pass-statistics-display=pipeline %s -O2 -o /dev/null 2>&1 | FileCheck --check-prefixes=ALL,O2 %s

! REQUIRES: asserts

end program

! ALL: Pass statistics report
! ALL: Fortran::lower::VerifierPass

! ALL: Pass statistics report

! ALL: Fortran::lower::VerifierPass
! O2-NEXT: Canonicalizer
! ALL:     Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT:'fir.global' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! ALL:       InlineElementals
! ALL-NEXT:'func.func' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! ALL:       InlineElementals
! ALL-NEXT:'omp.declare_reduction' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! ALL:       InlineElementals
! ALL-NEXT:'omp.private' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! ALL:       InlineElementals
! O2-NEXT: Canonicalizer
! O2-NEXT: CSE
! O2-NEXT: (S) {{.*}} num-cse'd
! O2-NEXT: (S) {{.*}} num-dce'd
! O2-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! O2-NEXT: 'fir.global' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! O2-NEXT:   OptimizedBufferization
! O2-NEXT:   InlineHLFIRAssign
! O2-NEXT: 'func.func' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! O2-NEXT:   OptimizedBufferization
! O2-NEXT:   InlineHLFIRAssign
! O2-NEXT: 'omp.declare_reduction' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! O2-NEXT:   OptimizedBufferization
! O2-NEXT:   InlineHLFIRAssign
! O2-NEXT: 'omp.private' Pipeline
! O2-NEXT:   SimplifyHLFIRIntrinsics
! O2-NEXT:   OptimizedBufferization
! O2-NEXT:   InlineHLFIRAssign
! ALL: LowerHLFIROrderedAssignments
! ALL-NEXT: LowerHLFIRIntrinsics
! ALL-NEXT: BufferizeHLFIR
! O2-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! O2-NEXT:   'fir.global' Pipeline
! O2-NEXT:     InlineHLFIRAssign
! O2-NEXT:   'func.func' Pipeline
! O2-NEXT:     InlineHLFIRAssign
! O2-NEXT:   'omp.declare_reduction' Pipeline
! O2-NEXT:     InlineHLFIRAssign
! O2-NEXT:   'omp.private' Pipeline
! O2-NEXT:     InlineHLFIRAssign
! ALL-NEXT: ConvertHLFIRtoFIR
! ALL-NEXT: CSE
! Ideally, we need an output with only the pass names, but
! there is currently no way to get that, so in order to
! guarantee that the passes are in the expected order
! (i.e. use -NEXT) we have to check the statistics output as well.
! ALL-NEXT:   (S) 0 num-cse'd - Number of operations CSE'd
! ALL-NEXT:   (S) 0 num-dce'd - Number of operations DCE'd

! ALL-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT: 'fir.global' Pipeline
! ALL-NEXT:   CharacterConversion
! ALL-NEXT: 'func.func' Pipeline
! ALL-NEXT:   ArrayValueCopy
! ALL-NEXT:   CharacterConversion
! ALL-NEXT: 'omp.declare_reduction' Pipeline
! ALL-NEXT:   CharacterConversion
! ALL-NEXT: 'omp.private' Pipeline
! ALL-NEXT:   CharacterConversion

! ALL-NEXT: Canonicalizer
! ALL-NEXT: SimplifyRegionLite
!  O2-NEXT: SimplifyIntrinsics
!  O2-NEXT: AlgebraicSimplification
! ALL-NEXT: CSE
! ALL-NEXT:   (S) 0 num-cse'd - Number of operations CSE'd
! ALL-NEXT:   (S) 0 num-dce'd - Number of operations DCE'd

! ALL-NEXT: 'func.func' Pipeline
! ALL-NEXT:   MemoryAllocationOpt

! ALL-NEXT: Inliner
! ALL-NEXT: SimplifyRegionLite
! ALL-NEXT: CSE
! ALL-NEXT:   (S) 0 num-cse'd - Number of operations CSE'd
! ALL-NEXT:   (S) 0 num-dce'd - Number of operations DCE'd

! ALL-NEXT: PolymorphicOpConversion
! ALL-NEXT: AssumedRankOpConversion
! O2-NEXT:  AddAliasTags

! ALL-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT:    'fir.global' Pipeline
! ALL-NEXT:      StackReclaim
! ALL-NEXT:      CFGConversion
! ALL-NEXT:    'func.func' Pipeline
! ALL-NEXT:      StackReclaim
! ALL-NEXT:      CFGConversion
! ALL-NEXT:   'omp.declare_reduction' Pipeline
! ALL-NEXT:      StackReclaim
! ALL-NEXT:      CFGConversion
! ALL-NEXT:   'omp.private' Pipeline
! ALL-NEXT:      StackReclaim
! ALL-NEXT:      CFGConversion

! ALL-NEXT: SCFToControlFlow
! ALL-NEXT: Canonicalizer
! ALL-NEXT: SimplifyRegionLite
! ALL-NEXT: CSE
! ALL-NEXT:   (S) 0 num-cse'd - Number of operations CSE'd
! ALL-NEXT:   (S) 0 num-dce'd - Number of operations DCE'd
! ALL-NEXT: BoxedProcedurePass

! ALL-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'gpu.module', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT:   'fir.global' Pipeline
! ALL-NEXT:    AbstractResultOpt
! ALL-NEXT:  'func.func' Pipeline
! ALL-NEXT:    AbstractResultOpt
! ALL-NEXT:  'gpu.module' Pipeline
! ALL-NEXT:   Pipeline Collection : ['func.func', 'gpu.func'] 
! ALL-NEXT:   'func.func' Pipeline 
! ALL-NEXT:   AbstractResultOpt
! ALL-NEXT:   'gpu.func' Pipeline 
! ALL-NEXT:   AbstractResultOpt
! ALL-NEXT:  'omp.declare_reduction' Pipeline
! ALL-NEXT:    AbstractResultOpt
! ALL-NEXT:  'omp.private' Pipeline
! ALL-NEXT:    AbstractResultOpt

! ALL-NEXT: CodeGenRewrite
! ALL-NEXT:   (S) 0 num-dce'd - Number of operations eliminated
! ALL-NEXT: ExternalNameConversion
! ALL-NEXT: TargetRewrite
! ALL-NEXT: CompilerGeneratedNamesConversion
! ALL-NEXT:  'func.func' Pipeline
! ALL-NEXT:   FunctionAttr
! ALL-NEXT: FIRToLLVMLowering
! ALL-NOT: LLVMIRLoweringPass