1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/unittests/Analysis
Mircea Trofin d07528fa7d [NPM] Do not run function simplification pipeline unnecessarily
The CGSCC pass manager interplay with the FunctionAnalysisManagerCGSCCProxy is 'special' in the sense that the former will rerun the latter if there are changes to a SCC structure; that being said, some of the functions in the SCC may be unchanged. In that case, the function simplification pipeline will be re-run, which impacts compile time[1].

This patch allows the function simplification pipeline be skipped if it was already run and the function was not modified since.

The behavior is currently disabled by default. This is because, currently, the rerunning of the function simplification pipeline on an unchanged function may still result in changes. The patch simplifies investigating and fixing those cases where repeated function pass runs do actually positively impact code quality, while offering an easy workaround for those impacted negatively by compile time regressions, and not impacting mainline scenarios.

[1] A [[ http://llvm-compile-time-tracker.com/compare.php?from=eb37d3546cd0c6e67798496634c45e501f7806f1&to=ac722d1190dc7bbdd17e977ef7ec95e69eefc91e&stat=instructions | compile time tracker ]] run with the option enabled.

Differential Revision: https://reviews.llvm.org/D98103
2021-05-06 12:24:33 -07:00
..
Inputs/ir2native_x86_64_model Reapply "[llvm] Native size estimator for training -Oz inliner" 2020-07-13 16:26:26 -07:00
AliasAnalysisTest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
AliasSetTrackerTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
AssumeBundleQueriesTest.cpp Plumb AssumeInst through operand bundle apis [nfc] 2021-04-06 12:53:53 -07:00
BasicAliasAnalysisTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
BlockFrequencyInfoTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
BranchProbabilityInfoTest.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CallGraphTest.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CaptureTrackingTest.cpp [CaptureTrackingTest] Add missing override marker (NFC) 2020-11-07 11:44:02 +01:00
CFGTest.cpp [unittests] Add InitializePasses.h includes 2019-11-13 19:42:58 -08:00
CGSCCPassManagerTest.cpp [NPM] Do not run function simplification pipeline unnecessarily 2021-05-06 12:24:33 -07:00
CMakeLists.txt [IRSim] Adding IR Instruction Mapper 2020-09-17 14:06:16 -05:00
ConstraintSystemTest.cpp [ConstraintSolver] Add isConditionImplied helper. 2020-09-15 13:50:11 +01:00
DDGTest.cpp [DDG] Fix duplicate edge removal during pi-block formation 2021-01-07 10:31:11 -05:00
DivergenceAnalysisTest.cpp [NewPM] Introduce (GPU)DivergenceAnalysis in the new pass manager 2021-02-16 10:26:45 +05:30
DomTreeUpdaterTest.cpp [DTU] Refine the interface and logic of applyUpdates 2019-02-22 13:48:38 +00:00
FunctionPropertiesAnalysisTest.cpp Add new function properties to FunctionPropertiesAnalysis 2020-07-23 12:46:47 -07:00
GlobalsModRefTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
IRSimilarityIdentifierTest.cpp [IRSim] Letting call instructions be legal for similarity identification. 2020-12-31 20:52:45 -06:00
IVDescriptorsTest.cpp [Analysis][LoopVectorize] rename "Unsafe" variables/methods; NFC 2021-03-04 10:40:26 -05:00
LazyCallGraphTest.cpp [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining 2021-01-06 11:19:15 -08:00
LoadsTest.cpp [Loads] Add canReplacePointersIfEqual helper. 2020-09-01 20:57:41 +01:00
LoopInfoTest.cpp Rename LoopInfo::isRotated() to LoopInfo::isRotatedForm(). 2019-12-12 14:22:36 -05:00
LoopNestTest.cpp LoopAnalysisManager.h - reduce includes to forward declarations. NFC. 2020-06-06 14:06:46 +01:00
MemoryBuiltinsTest.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MemorySSATest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
PhiValuesTest.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
ProfileSummaryInfoTest.cpp Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
ScalarEvolutionTest.cpp [SCEV] Improve handling of not expressions in isImpliedCond() 2021-03-24 21:53:02 +01:00
SparsePropagation.cpp [CallSite removal][Analysis] Use CallBase instead of CallSite in SparsePropagation unit test. NFC 2020-04-19 22:39:24 -07:00
TargetLibraryInfoTest.cpp [Analysis] Support AIX vec_malloc routines 2021-01-22 16:03:01 -05:00
TBAATest.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
TFUtilsTest.cpp [NFC][TFUtils] Extract out the output spec loader 2020-11-18 20:03:20 -08:00
UnrollAnalyzerTest.cpp ScalarEvolution.h - reduce LoopInfo.h include to forward declarations. NFC. 2020-06-17 15:48:23 +01:00
ValueLatticeTest.cpp [ValueLattice] Remove unused DataLayout parameter of mergeIn, NFC 2020-04-14 13:32:53 +02:00
ValueTrackingTest.cpp [ValueTracking] match negative-stepping non-zero recurrence 2021-04-14 08:57:53 -04:00
VectorFunctionABITest.cpp [Analysis] Change VFABI::mangleTLIVectorName to use ElementCount 2021-02-12 09:38:12 +00:00
VectorUtilsTest.cpp Revert "Revert "[NFC][llvm] Make the contructors of ElementCount private."" 2020-08-19 17:26:36 +00:00