llvm-project/llvm/test/Other
Alina Sbirlea 846d10f16a Turn on flag to not re-run simplification pipeline.
This patch turns on the flag `-enable-no-rerun-simplification-pipeline`, which means the simplification pipeline will not be rerun on unchanged functions in the CGSCCPass Manager.

Compile time improvement:
https://llvm-compile-time-tracker.com/compare.php?from=17457be1c393ff691cca032b04ea1698fedf0301&to=882301ebb893c8ef9f09fe1ea871f7995426fa07&stat=instructions

No meaningful run time regressions observed in the llvm test suite and
in additional internal workloads at this time.

The example test in `test/Other/no-rerun-function-simplification-pipeline.ll` is a good means to understand the effect of this change:
```
define void @f1(void()* %p) alwaysinline {
  call void %p()
  ret void
}

define void @f2() #0 {
  call void @f1(void()* @f2)
  call void @f3()
  ret void
}

define void @f3() #0 {
  call void @f2()
  ret void
}
```

There are two SCCs formed by the ModuleToPostOrderCGSCCAdaptor: (f1) and (f2, f3).

The pass manager runs on the first SCC, leading to running the simplification pipeline (function and loop passes) on f1. With the flag on, after this, the output will have `Running analysis: ShouldNotRunFunctionPassesAnalysis on f1`.

Next, the pass manager runs on the second SCC: (f2, f3). Since f1() was inlined, f2() now calls itself, and also calls f3(), while f3() only calls f2().
So the pass manager for the SCC first runs the Inliner on (f2, f3), then the simplification pipeline on f2.
With the flag on, the output will have `Running analysis: ShouldNotRunFunctionPassesAnalysis on f2`; unless the inliner makes a change, this analysis remains preserved which means there's no reason to rerun the simplification pipeline. With the flag off, there is a second run of the simplification pipeline run on f2.

Next, the same flow occurs for f3. The simplification pipeline is run on f3 a single time with the flag on, along with `ShouldNotRunFunctionPassesAnalysis on f3`, and twice with the flag off.
The reruns occur only on f2 and f3 due to the additional ref edges.
2022-07-14 06:23:55 -07:00
..
ChangePrinters [NFC] Change lit test for print-changed=dot-cfg to use regular expression 2022-06-06 15:53:25 -04:00
Inputs Add a regression test to guard the 0 hot-caller threshold in SamplePGO + ThinLTO. - Add a comment near where the threshold is set. 2022-04-25 18:29:56 +00:00
X86 [llvm-lto] Remove support for legacy pass manager 2022-04-11 09:40:17 +02:00
2002-01-31-CallGraph.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
2002-02-24-InlineBrokePHINodes.ll
2004-08-16-PackedConstantInlineStore.ll
2004-08-16-PackedGlobalConstant.ll
2004-08-16-PackedSelect.ll
2004-08-16-PackedSimple.ll
2004-08-20-PackedControlFlow.ll
2006-02-05-PassManager.ll
2007-09-10-PassManager.ll
2008-02-14-PassManager.ll
2008-06-04-FieldSizeInPacked.ll
2008-10-06-RemoveDeadPass.ll
2008-10-15-MissingSpace.ll
2009-06-05-no-implicit-float.ll
2009-09-14-function-elements.ll
2010-05-06-Printer.ll Remove "Rewrite Symbols" from codegen pipeline 2021-05-31 08:32:36 -07:00
FileCheck-space.txt
ResponseFile.ll
attribute-comment.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
available-externally-lto.ll
bb-badref.ll [AsmWriter] Construct SlotTracker with the function 2020-10-20 15:01:40 -07:00
bcanalyzer-block-info.txt
bcanalyzer-dump-blockinfo-option.txt [BitcodeAnalyzer] allow a motivated user to dump BLOCKINFO 2021-10-10 10:15:14 +05:30
bcanalyzer-dump-option.txt
can-execute.txt
cfg-printer-branch-weights-percent.ll Reapply [lit] Read command stdout/stderr as text on Windows 2022-03-03 13:31:31 +02:00
cfg-printer-branch-weights.ll Reapply [lit] Read command stdout/stderr as text on Windows 2022-03-03 13:31:31 +02:00
cfg-printer-filter.ll Reapply [lit] Read command stdout/stderr as text on Windows 2022-03-03 13:31:31 +02:00
cfg_deopt_unreach.ll Reapply [lit] Read command stdout/stderr as text on Windows 2022-03-03 13:31:31 +02:00
cgscc-devirt-iteration.ll [funcattrs] Infer writeonly argument attribute [part 2] 2022-01-04 09:07:54 -08:00
cgscc-disconnected-invalidation.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
cgscc-iterate-function-mutation.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
cgscc-libcall-update.ll Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07:00
cgscc-observe-devirt.ll [funcattrs] Add the maximal set of implied attributes to definitions 2021-04-16 14:22:19 -07:00
cgscc-refscc-mutation-order.ll [NewPM] Don't skip SCCs not in current RefSCC 2022-03-18 14:16:29 -07:00
change-printer.ll [NewPM] Cleanup IR printing instrumentation 2021-04-15 09:50:55 -07:00
cleanup-lcssa.ll
codegenprepare-and-debug.ll
constant-fold-gep-address-spaces.ll
constant-fold-gep.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
copy-metadata-of-declaration.ll [Cloning] Copy metadata of global declarations 2021-01-08 08:21:18 +08:00
debug-pass-manager.ll [NewPM][opt] Add -debug-pass-manager=quiet to not print analysis info 2021-07-19 15:08:26 -07:00
debugcounter-dce.ll
debugcounter-earlycse.ll
debugcounter-newgvn.ll
debugcounter-predicateinfo.ll [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
devirt-invalidated.ll [NewPM] Bail out of devirtualization wrapper if the current SCC is invalidated 2021-07-19 15:07:30 -07:00
devirtualization-undef.ll Reland [CGSCC] Detect devirtualization in more cases 2020-11-23 21:28:59 -08:00
force-opaque-ptrs.ll Revert "Revert "[OpaquePointers][BitcodeReader] Enable -opaque-pointers if we see an opaque pointer type"" 2022-03-21 17:24:56 -07:00
heat-colors-graphs.ll [CallPrinter] Port CallPrinter passes to new pass manager 2022-04-18 10:02:18 -07:00
heat-colors-multigraph.ll [CallPrinter] Port CallPrinter passes to new pass manager 2022-04-18 10:02:18 -07:00
invalid-commandline-option.ll
invariant.group.ll Reapply "[Intrinsics] Add `nocallback` to the default intrinsic attributes" 2022-03-25 09:36:50 -05:00
lint.ll [clang] Add support for __builtin_memset_inline 2022-06-10 13:13:59 +00:00
lit-globbing.ll
lit-quoting.txt [test] Avoid unportable echo in Other/lit-quoting.txt 2021-08-15 00:20:47 +02:00
lit-unicode.txt
llvm-nm-without-aliases.ll
loop-deletion-printer.ll [NewPM] Print pre-transformation IR name in --print-after-all 2021-07-20 10:20:10 -07:00
loop-mssa-not-preserved.ll [LoopPassManager] Assert that MemorySSA is preserved if used 2021-08-20 22:48:04 +02:00
loop-pass-ordering.ll
loop-pass-printer.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
loop-pm-invalidation.ll [InferAddressSpaces] Support assumed addrspaces from addrspace predicates. 2021-11-08 16:51:57 -05:00
loopnest-callback.ll Making Instrumentation aware of LoopNest Pass 2021-05-24 20:25:52 -07:00
loopnest-pass-ordering.ll Add NoOpLoopNestPass and LOOPNEST_PASS macro 2021-11-05 16:11:48 +00:00
machine-size-remarks.ll
mixed-opaque-ptrs-2.ll Revert "Revert "[OpaquePtr][LLParser] Automatically detect opaque pointers in .ll files"" 2022-03-21 17:24:56 -07:00
mixed-opaque-ptrs.ll Revert "Revert "[OpaquePtr][LLParser] Automatically detect opaque pointers in .ll files"" 2022-03-21 17:24:56 -07:00
module-pass-printer.ll [NewPM] Cleanup IR printing instrumentation 2021-04-15 09:50:55 -07:00
new-pass-manager-verify-each.ll [NewPM] Use PassInstrumentation for -verify-each 2020-10-07 19:24:25 -07:00
new-pass-manager.ll [InferAddressSpaces] Support assumed addrspaces from addrspace predicates. 2021-11-08 16:51:57 -05:00
new-pm-O0-defaults.ll [PassManager][Coroutine] Run passes under -O0 conditionally and run GlobalDCE 2022-03-23 11:03:26 -07:00
new-pm-O0-ep-callbacks.ll [NewPM] Add OptimizerEarly module extension point 2022-03-31 08:22:27 -07:00
new-pm-cspgo.ll
new-pm-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-eager-invalidate.ll [NewPM] Only invalidate modified functions' analyses in CGSCC passes + turn on eagerly invalidate analyses 2021-11-15 14:44:53 -08:00
new-pm-lto-defaults.ll [LLVM][LTO][LLD] Enable Profile Guided Layout (--call-graph-profile-sort) for FullLTO 2022-07-01 13:57:36 +01:00
new-pm-pgo-O0.ll [NPM] Move more O0 pass building into PassBuilder 2020-11-19 11:22:23 -08:00
new-pm-pgo-preinline.ll [NewPM] Only invalidate modified functions' analyses in CGSCC passes + turn on eagerly invalidate analyses 2021-11-15 14:44:53 -08:00
new-pm-pgo.ll [NFC] Rename GVN -> GVNPass and SROA -> SROAPass 2021-11-09 10:35:58 -08:00
new-pm-pr42726-cgscc.ll [NewPM][opt] Run the "default" AA pipeline by default 2021-01-21 21:08:54 -08:00
new-pm-print-pipeline.ll [LICM] Add allowspeculation pass options. 2022-03-18 16:51:57 +00:00
new-pm-pseudo-probe.ll Moving UniqueInternalLinkageNamesPass to the start of IR pipelines. 2021-01-02 14:26:21 -08:00
new-pm-thinlto-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-thinlto-postlink-pgo-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-thinlto-postlink-samplepgo-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-thinlto-prelink-pgo-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-thinlto-prelink-samplepgo-defaults.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
new-pm-thinlto-prelink-samplepgo-inline-threshold.ll Add a regression test to guard the 0 hot-caller threshold in SamplePGO + ThinLTO. - Add a comment near where the threshold is set. 2022-04-25 18:29:56 +00:00
new-pm-time-trace.ll
no-rerun-function-simplification-pipeline.ll Turn on flag to not re-run simplification pipeline. 2022-07-14 06:23:55 -07:00
opt-On.ll [opt] Error on `opt -O# --foo-pass` 2022-05-09 09:53:24 -07:00
opt-bisect-helper.py
opt-bisect-new-pass-manager.ll [NewPM] Mark BitcodeWriter as required. 2021-05-21 16:14:09 -07:00
opt-hot-cold-split.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
opt-old-new-pm-passes.ll
opt-override-denormal-fp-math-f32.ll [test] Fix unused check prefixes in test/Linker/ and test/Other/ 2020-10-29 21:54:56 -07:00
opt-override-denormal-fp-math-mixed.ll [test] Fix unused check prefixes in test/Linker/ and test/Other/ 2020-10-29 21:54:56 -07:00
opt-override-denormal-fp-math.ll [test] Fix unused check prefixes in test/Linker/ and test/Other/ 2020-10-29 21:54:56 -07:00
opt-override-frame-pointer.ll
opt-override-mcpu-mattr.ll
opt-pipeline-vector-passes.ll [Passes] Only run extra vector passes if loops have been vectorized. 2021-12-10 11:42:45 +00:00
opt-twice.ll
optimization-remarks-auto.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
optimization-remarks-inline.ll [Support] Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace 2022-05-30 19:19:23 +01:00
optimization-remarks-invalidation.ll [LICM] Remove AST-based implementation 2021-08-18 20:21:53 +02:00
optimization-remarks-lazy-bfi.ll
optimize-inrange-gep.ll
pass-pipeline-parsing.ll [NewPM] Add options to PrintPassInstrumentation 2021-05-18 20:59:35 -07:00
pipefail.txt
pr32085.ll
print-before-after.ll [NewPM] Rename 'unswitch' to 'simple-loop-unswitch' in PassRegistry 2021-07-09 09:47:33 +02:00
print-changed-deleted.ll [NewPM] Fix -print-changed when a -filter-print-funcs function is removed 2021-04-12 11:55:17 -07:00
print-debug-counter.ll
print-module-scope.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
print-on-crash.ll Add new hidden option -print-on-crash that prints out IR that caused opt pipeline to crash 2022-05-23 15:38:38 -07:00
print-passes.ll Add NoOpLoopNestPass and LOOPNEST_PASS macro 2021-11-05 16:11:48 +00:00
print-slotindexes.ll [NFC] Disallow unused prefixes under Other 2021-01-19 12:22:29 -08:00
printer.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
scalable-vector-array.ll
scalable-vector-struct-intrinsic.ll [IR] Allow scalable vectors in structs to support intrinsics returning multiple values. 2021-01-17 23:29:51 -08:00
scalable-vectors-core-ir.ll Precommit analysis/etc tests for inselt poison placeholder 2020-12-24 12:14:24 +09:00
scc-deleted-printer.ll [NewPM] Print pre-transformation IR name in --print-after-all 2021-07-20 10:20:10 -07:00
scc-pass-printer.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
spir_cc.ll
statistic.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
time-passes.ll [test] Remove legacy PM tests in llvm/test/Other 2021-09-02 12:23:24 -07:00
unroll-sroa.ll
writing-to-stdout.ll