new-pass-manager.ll 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. ; This test is essentially doing very basic things with the opt tool and the
  2. ; new pass manager pipeline. It will be used to flesh out the feature
  3. ; completeness of the opt tool when the new pass manager is engaged. The tests
  4. ; may not be useful once it becomes the default or may get spread out into other
  5. ; files, but for now this is just going to step the new process through its
  6. ; paces.
  7. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  8. ; RUN: -passes=no-op-module %s 2>&1 \
  9. ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS
  10. ; CHECK-MODULE-PASS: Starting pass manager
  11. ; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass
  12. ; CHECK-MODULE-PASS-NEXT: Finished pass manager
  13. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  14. ; RUN: -passes=no-op-cgscc %s 2>&1 \
  15. ; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
  16. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  17. ; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \
  18. ; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
  19. ; CHECK-CGSCC-PASS: Starting pass manager
  20. ; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
  21. ; CHECK-CGSCC-PASS-NEXT: Running analysis: CGSCCAnalysisManagerModuleProxy
  22. ; CHECK-CGSCC-PASS-NEXT: Running analysis: Lazy CallGraph Analysis
  23. ; CHECK-CGSCC-PASS-NEXT: Starting pass manager
  24. ; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
  25. ; CHECK-CGSCC-PASS-NEXT: Finished pass manager
  26. ; CHECK-CGSCC-PASS-NEXT: Finished pass manager
  27. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  28. ; RUN: -passes=no-op-function %s 2>&1 \
  29. ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
  30. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  31. ; RUN: -passes='function(no-op-function)' %s 2>&1 \
  32. ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
  33. ; CHECK-FUNCTION-PASS: Starting pass manager
  34. ; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
  35. ; CHECK-FUNCTION-PASS-NEXT: Running analysis: FunctionAnalysisManagerModuleProxy
  36. ; CHECK-FUNCTION-PASS-NEXT: Starting pass manager
  37. ; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
  38. ; CHECK-FUNCTION-PASS-NEXT: Finished pass manager
  39. ; CHECK-FUNCTION-PASS-NEXT: Finished pass manager
  40. ; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
  41. ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
  42. ; CHECK-MODULE-PRINT: Starting pass manager
  43. ; CHECK-MODULE-PRINT: Running pass: VerifierPass
  44. ; CHECK-MODULE-PRINT: Running pass: PrintModulePass
  45. ; CHECK-MODULE-PRINT: ModuleID
  46. ; CHECK-MODULE-PRINT: define void @foo()
  47. ; CHECK-MODULE-PRINT: Running pass: VerifierPass
  48. ; CHECK-MODULE-PRINT: Finished pass manager
  49. ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
  50. ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
  51. ; CHECK-MODULE-VERIFY: Starting pass manager
  52. ; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
  53. ; CHECK-MODULE-VERIFY: ModuleID
  54. ; CHECK-MODULE-VERIFY: define void @foo()
  55. ; CHECK-MODULE-VERIFY: Running pass: VerifierPass
  56. ; CHECK-MODULE-VERIFY: Finished pass manager
  57. ; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
  58. ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
  59. ; CHECK-FUNCTION-PRINT: Starting pass manager
  60. ; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
  61. ; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
  62. ; CHECK-FUNCTION-PRINT: Running analysis: FunctionAnalysisManagerModuleProxy
  63. ; CHECK-FUNCTION-PRINT: Starting pass manager
  64. ; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
  65. ; CHECK-FUNCTION-PRINT-NOT: ModuleID
  66. ; CHECK-FUNCTION-PRINT: define void @foo()
  67. ; CHECK-FUNCTION-PRINT: Finished pass manager
  68. ; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
  69. ; CHECK-FUNCTION-PRINT: Finished pass manager
  70. ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
  71. ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
  72. ; CHECK-FUNCTION-VERIFY: Starting pass manager
  73. ; CHECK-FUNCTION-VERIFY: Starting pass manager
  74. ; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
  75. ; CHECK-FUNCTION-VERIFY-NOT: ModuleID
  76. ; CHECK-FUNCTION-VERIFY: define void @foo()
  77. ; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
  78. ; CHECK-FUNCTION-VERIFY: Finished pass manager
  79. ; CHECK-FUNCTION-VERIFY: Finished pass manager
  80. ; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
  81. ; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
  82. ; CHECK-NOOP: define void @foo() {
  83. ; CHECK-NOOP: ret void
  84. ; CHECK-NOOP: }
  85. ; Round trip through bitcode.
  86. ; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
  87. ; RUN: | llvm-dis \
  88. ; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
  89. ; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
  90. ; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
  91. ; CHECK-VERIFY-EACH: Starting pass manager
  92. ; CHECK-VERIFY-EACH: Running pass: VerifierPass
  93. ; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
  94. ; CHECK-VERIFY-EACH: Running pass: VerifierPass
  95. ; CHECK-VERIFY-EACH: Starting pass manager
  96. ; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
  97. ; CHECK-VERIFY-EACH: Running pass: VerifierPass
  98. ; CHECK-VERIFY-EACH: Finished pass manager
  99. ; CHECK-VERIFY-EACH: Running pass: VerifierPass
  100. ; CHECK-VERIFY-EACH: Finished pass manager
  101. ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
  102. ; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
  103. ; CHECK-NO-VERIFY: Starting pass manager
  104. ; CHECK-NO-VERIFY-NOT: VerifierPass
  105. ; CHECK-NO-VERIFY: Running pass: NoOpModulePass
  106. ; CHECK-NO-VERIFY-NOT: VerifierPass
  107. ; CHECK-NO-VERIFY: Starting pass manager
  108. ; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
  109. ; CHECK-NO-VERIFY-NOT: VerifierPass
  110. ; CHECK-NO-VERIFY: Finished pass manager
  111. ; CHECK-NO-VERIFY-NOT: VerifierPass
  112. ; CHECK-NO-VERIFY: Finished pass manager
  113. ; RUN: opt -disable-output -debug-pass-manager \
  114. ; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
  115. ; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
  116. ; CHECK-ANALYSES: Starting pass manager
  117. ; CHECK-ANALYSES: Running pass: RequireAnalysisPass
  118. ; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
  119. ; CHECK-ANALYSES: Starting pass manager
  120. ; CHECK-ANALYSES: Running pass: RequireAnalysisPass
  121. ; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
  122. ; CHECK-ANALYSES: Starting pass manager
  123. ; CHECK-ANALYSES: Running pass: RequireAnalysisPass
  124. ; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
  125. ; Make sure no-op passes that preserve all analyses don't even try to do any
  126. ; analysis invalidation.
  127. ; RUN: opt -disable-output -debug-pass-manager \
  128. ; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
  129. ; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
  130. ; CHECK-NO-OP-INVALIDATION: Starting pass manager
  131. ; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
  132. ; RUN: opt -disable-output -debug-pass-manager \
  133. ; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
  134. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
  135. ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting pass manager
  136. ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  137. ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
  138. ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
  139. ; RUN: opt -disable-output -debug-pass-manager \
  140. ; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
  141. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
  142. ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting pass manager
  143. ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  144. ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
  145. ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
  146. ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
  147. ; RUN: opt -disable-output -debug-pass-manager \
  148. ; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
  149. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
  150. ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting pass manager
  151. ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  152. ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
  153. ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
  154. ; RUN: opt -disable-output -debug-pass-manager \
  155. ; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
  156. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
  157. ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting pass manager
  158. ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  159. ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
  160. ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
  161. ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
  162. ; RUN: opt -disable-output -debug-pass-manager \
  163. ; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
  164. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
  165. ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager
  166. ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  167. ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
  168. ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
  169. ; RUN: opt -disable-output -debug-pass-manager \
  170. ; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
  171. ; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
  172. ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager
  173. ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
  174. ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
  175. ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
  176. ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
  177. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  178. ; RUN: -passes='require<no-op-module>,module(require<no-op-module>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-module>),require<no-op-module>' %s 2>&1 \
  179. ; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
  180. ; CHECK-INVALIDATE-ALL: Starting pass manager
  181. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  182. ; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
  183. ; CHECK-INVALIDATE-ALL: Starting pass manager
  184. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  185. ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
  186. ; CHECK-INVALIDATE-ALL: Starting pass manager
  187. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  188. ; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
  189. ; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
  190. ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
  191. ; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
  192. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  193. ; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
  194. ; CHECK-INVALIDATE-ALL: Finished pass manager
  195. ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
  196. ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis
  197. ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
  198. ; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
  199. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  200. ; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
  201. ; CHECK-INVALIDATE-ALL: Finished pass manager
  202. ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
  203. ; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
  204. ; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
  205. ; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
  206. ; CHECK-INVALIDATE-ALL: Finished pass manager
  207. ; RUN: opt -disable-output -disable-verify -debug-pass-manager \
  208. ; RUN: -passes='require<no-op-module>,module(require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-cgscc>),require<no-op-module>),require<no-op-module>' %s 2>&1 \
  209. ; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
  210. ; CHECK-INVALIDATE-ALL-CG: Starting pass manager
  211. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  212. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
  213. ; CHECK-INVALIDATE-ALL-CG: Starting pass manager
  214. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  215. ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
  216. ; CHECK-INVALIDATE-ALL-CG: Starting pass manager
  217. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  218. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
  219. ; CHECK-INVALIDATE-ALL-CG: Starting pass manager
  220. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  221. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
  222. ; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
  223. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  224. ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
  225. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  226. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
  227. ; CHECK-INVALIDATE-ALL-CG: Finished pass manager
  228. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  229. ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
  230. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  231. ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
  232. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  233. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
  234. ; CHECK-INVALIDATE-ALL-CG: Finished pass manager
  235. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  236. ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
  237. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  238. ; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
  239. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  240. ; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
  241. ; CHECK-INVALIDATE-ALL-CG: Finished pass manager
  242. ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
  243. ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
  244. ; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
  245. ; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
  246. ; CHECK-INVALIDATE-ALL-CG: Finished pass manager
  247. ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
  248. ; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
  249. ; RUN: | FileCheck %s --check-prefix=CHECK-TLI
  250. ; CHECK-TLI: Starting pass manager
  251. ; CHECK-TLI: Running pass: RequireAnalysisPass
  252. ; CHECK-TLI: Running analysis: TargetLibraryAnalysis
  253. ; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
  254. ; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
  255. ; CHECK-TLI: Running pass: RequireAnalysisPass
  256. ; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
  257. ; CHECK-TLI: Finished pass manager
  258. ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
  259. ; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \
  260. ; RUN: | FileCheck %s --check-prefix=CHECK-TIRA
  261. ; CHECK-TIRA: Starting pass manager
  262. ; CHECK-TIRA: Running pass: RequireAnalysisPass
  263. ; CHECK-TIRA: Running analysis: TargetIRAnalysis
  264. ; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
  265. ; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
  266. ; CHECK-TIRA: Running pass: RequireAnalysisPass
  267. ; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
  268. ; CHECK-TIRA: Finished pass manager
  269. ; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
  270. ; RUN: -passes='require<domtree>' \
  271. ; RUN: | FileCheck %s --check-prefix=CHECK-DT
  272. ; CHECK-DT: Starting pass manager
  273. ; CHECK-DT: Running pass: RequireAnalysisPass
  274. ; CHECK-DT: Running analysis: DominatorTreeAnalysis
  275. ; CHECK-DT: Finished pass manager
  276. define void @foo() {
  277. ret void
  278. }
  279. declare void @bar()