llvm-project/llvm/test/Other
Yevgeny Rouban 39e3e3aa51 [NewPM] Redesign of PreserveCFG Checker
The reason for the NewPM redesign is described in the commit
  cba3e783389a: [NewPM] Disable PreservedCFGChecker ...

The checker introduces an internal custom CFG analysis that tracks
current up-to date CFG snapshot. The analysis is invalidated along
any other CFG related analysis (the key is CFGAnalyses). If the CFG
analysis is not invalidated at a functional pass exit then the checker
asserts that the CFG snapshot taken from this analysis is equals to
a snapshot of the current CFG.

Along the way:
- the function CFG::printDiff() is simplified by removing function
  name calculation. The name is printed by the caller;
- fixed CFG invalidated condition (see CFG::invalidate());
- StandardInstrumentations::registerCallbacks() gets additional
  optional parameter of type FunctionAnalysisManager*, which is
  needed by the checker to get the custom CFG analysis;
- several PM related tests updated to explicitly set
  -verify-cfg-preserved=1 as they need.

This patch is safe to land as the CFGChecker is left switched off
(the options -verify-cfg-preserved is false by default). It will be
switched on by a separate patch to minimize possible reverts.

Reviewed By: skatkov, kuhar

Differential Revision: https://reviews.llvm.org/D91327
2021-04-06 12:35:49 +07:00
..
ChangePrinters add print-change diff modes that do not use colour 2021-03-25 10:35:27 -04:00
Inputs Restore "[ThinLTO] Add additional ThinLTO pipeline testing with new PM" 2020-01-15 07:33:08 -08:00
X86 Recommit "[LTO] Use lto::backend for code generation." 2021-02-15 10:05:42 +00:00
2002-01-31-CallGraph.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -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-06-05-PassID.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -07:00
2007-06-28-PassManager.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -07:00
2007-09-10-PassManager.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
2008-02-14-PassManager.ll
2008-06-04-FieldSizeInPacked.ll
2008-10-06-RemoveDeadPass.ll
2008-10-15-MissingSpace.ll
2009-03-31-CallGraph.ll [PruneEH] Pin tests to legacy PM 2020-10-29 18:17:55 -07:00
2009-06-05-no-implicit-float.ll
2009-09-14-function-elements.ll
2010-05-06-Printer.ll [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
FileCheck-space.txt
ResponseFile.ll
attribute-comment.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08: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-option.txt [llvm-bcanalyzer] Don't dump the contents if -dump is not passed 2019-11-13 10:38:57 -08:00
can-execute.txt
cfg-printer-branch-weights-percent.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -07:00
cfg-printer-branch-weights.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -07:00
cfg_deopt_unreach.ll [test] Fix tests using -analyze that fail under NPM 2020-10-21 21:54:30 -07:00
cgscc-devirt-iteration.ll [funcattrs] Infer nosync from readnone and non-convergent 2021-04-01 11:37:34 -07:00
cgscc-disconnected-invalidation.ll
cgscc-iterate-function-mutation.ll [funcattrs] Infer nosync from readnone and non-convergent 2021-04-01 11:37:34 -07:00
cgscc-libcall-update.ll Reland "[Libcalls, Attrs] Annotate libcalls with noundef" 2021-02-20 06:18:48 +01:00
cgscc-observe-devirt.ll [funcattrs] Infer nosync from readnone and non-convergent 2021-04-01 11:37:34 -07:00
change-printer.ll Introduce new quiet mode and new option handling for -print-changed. 2021-01-11 14:15:18 -05:00
cleanup-lcssa.ll
codegenprepare-and-debug.ll
constant-fold-gep-address-spaces.ll
constant-fold-gep.ll Reland [SCEV] Improve modelling for (null) pointer constants 2021-03-13 16:05:34 +03:00
copy-metadata-of-declaration.ll [Cloning] Copy metadata of global declarations 2021-01-08 08:21:18 +08:00
cspgo-O2-pipeline.ll [NewPM] Pin various tests under Other/ to legacy PM 2020-08-17 18:58:08 -07:00
debug-pass-npm.ll [opt] Error if -debug-pass is specified alongside the new PM 2021-03-02 15:59:28 -08:00
debugcounter-dce.ll
debugcounter-earlycse.ll [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
debugcounter-newgvn.ll
debugcounter-predicateinfo.ll Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types. 2021-03-20 11:37:09 +01:00
devirtualization-undef.ll Reland [CGSCC] Detect devirtualization in more cases 2020-11-23 21:28:59 -08:00
extract-alias.ll
extract-linkonce.ll
extract-weak-odr.ll
extract.ll
heat-colors-graphs.ll [test] Pin tests using -dot-callgraph to legacy PM 2020-11-23 11:48:59 -08:00
heat-colors-multigraph.ll [test] Pin tests using -dot-callgraph to legacy PM 2020-11-23 11:48:59 -08:00
invalid-commandline-option.ll
invariant.group.ll [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
lint.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
lit-globbing.ll
lit-quoting.txt
lit-unicode.txt
llvm-nm-without-aliases.ll
loop-deletion-printer.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
loop-pass-ordering.ll
loop-pass-printer.ll [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
loop-pm-invalidation.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
machine-size-remarks.ll
module-pass-printer.ll IR printing for single function with the new pass manager. 2020-02-23 15:28:57 -08: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 [NewPM] Redesign of PreserveCFG Checker 2021-04-06 12:35:49 +07:00
new-pm-O0-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-O0-ep-callbacks.ll [NewPM] Add pipeline EP callback after initial frontend cleanup 2020-11-24 21:14:36 -08:00
new-pm-cspgo.ll
new-pm-defaults.ll [NewPM] Redesign of PreserveCFG Checker 2021-04-06 12:35:49 +07:00
new-pm-lto-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07: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][Inliner] Move the 'always inliner' case in the same CGSCC pass as 'regular' inliner 2021-01-15 17:59:38 -08:00
new-pm-pgo.ll Revert "[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting" 2020-10-19 12:31:14 +02: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-pseudo-probe.ll Moving UniqueInternalLinkageNamesPass to the start of IR pipelines. 2021-01-02 14:26:21 -08:00
new-pm-thinlto-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-thinlto-postlink-pgo-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-thinlto-postlink-samplepgo-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-thinlto-prelink-pgo-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-thinlto-prelink-samplepgo-defaults.ll [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
new-pm-time-trace.ll Extend TimeTrace to LLVM's new pass manager 2020-03-06 14:45:19 -08:00
opt-LTO-pipeline.ll [MemCopyOpt] Enable MemorySSA by default 2021-02-19 18:06:25 +01:00
opt-O0-pipeline-enable-matrix.ll Move EntryExitInstrumentation pass location 2021-03-01 10:08:10 -08:00
opt-O0-pipeline.ll Move EntryExitInstrumentation pass location 2021-03-01 10:08:10 -08:00
opt-O2-pipeline.ll [PassManager] Run additional LICM before LoopRotate 2021-04-02 11:11:42 +03:00
opt-O3-pipeline-enable-matrix.ll [PassManager] Run additional LICM before LoopRotate 2021-04-02 11:11:42 +03:00
opt-O3-pipeline.ll [PassManager] Run additional LICM before LoopRotate 2021-04-02 11:11:42 +03:00
opt-Os-pipeline.ll [PassManager] Run additional LICM before LoopRotate 2021-04-02 11:11:42 +03:00
opt-bisect-helper.py
opt-bisect-legacy-pass-manager.ll [FileCheck] Default --allow-unused-prefixes to false 2021-02-08 13:37:04 -08:00
opt-bisect-new-pass-manager.ll Enable opt-bisect for the new pass manager 2020-11-09 15:57:48 -08:00
opt-hot-cold-split.ll Revert "[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting" 2020-10-19 12:31:14 +02:00
opt-npm.ll [NewPM] Attempt to run opt passes specified via -foo-pass under NPM 2020-06-23 10:10:40 -07:00
opt-old-new-pm-passes.ll [NPM] Bail out when -foo and --passes=foo are both specified 2020-06-22 08:27:13 -07:00
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 llc: Don't overwrite frame-pointer attribute 2020-01-15 20:56:46 -05:00
opt-override-mcpu-mattr.ll llc: Change behavior of -mattr with existing attribute 2020-01-15 19:46:01 -05:00
opt-pipeline-vector-passes.ll [NewPM] Add ExtraVectorizerPasses support 2021-01-26 22:59:10 +01:00
opt-twice.ll
optimization-remarks-auto.ll [InlineCost] Make cost-benefit decision explicit 2021-03-24 16:10:58 -07:00
optimization-remarks-inline.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
optimization-remarks-invalidation.ll
optimization-remarks-lazy-bfi.ll
optimize-inrange-gep.ll
optimize-options.ll [NewPM] Pin various tests under Other/ to legacy PM 2020-08-17 18:58:08 -07:00
pass-pipeline-parsing.ll [NewPM][opt] Run the "default" AA pipeline by default 2021-01-21 21:08:54 -08:00
pass-pipelines.ll [PassManager] Run additional LICM before LoopRotate 2021-04-02 11:11:42 +03:00
pipefail.txt
pm-pgo-preinline.ll [PGO] Enable preinline and cleanup when optimize for size 2020-12-10 12:29:17 -08:00
pr32085.ll
print-before-after.ll [NewPM] Don't error when there's an unrecognized pass name 2021-01-07 22:33:32 -08:00
print-cfg-sccs.ll [NewPM] Pin various tests under Other/ to legacy PM 2020-08-17 18:58:08 -07:00
print-debug-counter.ll [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
print-module-scope.ll [NewPM] Pin various tests under Other/ to legacy PM 2020-08-17 18:58:08 -07:00
print-passes.ll [opt][NewPM] Add a --print-passes flag to print all available passes 2021-02-10 11:22:12 -08:00
print-slotindexes.ll [NFC] Disallow unused prefixes under Other 2021-01-19 12:22:29 -08:00
printer.ll [NewPM] Pin various tests under Other/ to legacy PM 2020-08-17 18:58:08 -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 [Inliner] Run always-inliner in inliner-wrapper 2020-10-22 19:16:25 -07:00
scc-pass-printer.ll [test] Make scc-pass-printer.ll work with NPM 2020-11-17 23:53:47 -08:00
size-remarks.ll [test] Pin size-remarks.ll to legacy PM 2020-11-17 23:47:49 -08:00
spir_cc.ll
statistic.ll [opt] Pin -stats-json & -opt-bisect-limit tests to -enable-new-pm=0 2020-10-28 22:59:53 -07:00
time-passes.ll [Time-report] Add a flag -ftime-report={per-pass,per-pass-run} to control the pass timing aggregation 2020-12-08 10:13:19 -08:00
unroll-sroa.ll [NewPM] Add an SROA pass after loop unroll 2019-11-01 14:59:08 -07:00
writing-to-stdout.ll