llvm-project/llvm/unittests/Analysis
Arthur Eubanks d9cbceb041 [CGSCC][Inliner] Handle new non-trivial edges in updateCGAndAnalysisManagerForPass
Previously the inliner did a bit of a hack by adding ref edges for all
new edges introduced by performing an inline before calling
updateCGAndAnalysisManagerForPass(). This was because
updateCGAndAnalysisManagerForPass() didn't handle new non-trivial call
edges.

This adds handling of non-trivial call edges to
updateCGAndAnalysisManagerForPass().  The inliner called
updateCGAndAnalysisManagerForFunctionPass() since it was handling adding
newly introduced edges (so updateCGAndAnalysisManagerForPass() would
only have to handle promotion), but now it needs to call
updateCGAndAnalysisManagerForCGSCCPass() since
updateCGAndAnalysisManagerForPass() is now handling the new call edges
and function passes cannot add new edges.

We follow the previous path of adding trivial ref edges then letting promotion
handle changing the ref edges to call edges and the CGSCC updates. So
this still does not allow adding call edges that result in an addition
of a non-trivial ref edge.

This is in preparation for better detecting devirtualization. Previously
since the inliner itself would add ref edges,
updateCGAndAnalysisManagerForPass() would think that promotion and thus
devirtualization had happened after any sort of inlining.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D91046
2020-11-11 13:43:49 -08: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 [BasicAA] Add test for incorrect BatchAA result (NFC) 2020-11-11 19:06:42 +01:00
AliasSetTrackerTest.cpp TargetLibraryInfo.h - reduce Triple.h include to forward declaration. NFC. 2020-06-05 14:35:30 +01:00
AssumeBundleQueriesTest.cpp Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
BasicAliasAnalysisTest.cpp [AliasAnalysis] Initialize a member variable that may be used by unit test. 2019-08-02 08:05:14 +00:00
BlockFrequencyInfoTest.cpp
BranchProbabilityInfoTest.cpp
CFGTest.cpp [unittests] Add InitializePasses.h includes 2019-11-13 19:42:58 -08:00
CGSCCPassManagerTest.cpp [CGSCC][Inliner] Handle new non-trivial edges in updateCGAndAnalysisManagerForPass 2020-11-11 13:43:49 -08:00
CMakeLists.txt [IRSim] Adding IR Instruction Mapper 2020-09-17 14:06:16 -05:00
CallGraphTest.cpp
CaptureTrackingTest.cpp [CaptureTrackingTest] Add missing override marker (NFC) 2020-11-07 11:44:02 +01:00
ConstraintSystemTest.cpp [ConstraintSolver] Add isConditionImplied helper. 2020-09-15 13:50:11 +01:00
DDGTest.cpp ScalarEvolution.h - reduce LoopInfo.h include to forward declarations. NFC. 2020-06-17 15:48:23 +01:00
DivergenceAnalysisTest.cpp
DomTreeUpdaterTest.cpp
FunctionPropertiesAnalysisTest.cpp Add new function properties to FunctionPropertiesAnalysis 2020-07-23 12:46:47 -07:00
GlobalsModRefTest.cpp GlobalsModRef.h - reduce CallGraph.h include to forward declarations. NFC. 2020-06-25 16:00:43 +01:00
IRSimilarityIdentifierTest.cpp [llvm] Use instead of in IRSimilarityIdentifierTest.cpp. 2020-09-24 11:28:26 +02:00
IVDescriptorsTest.cpp Revert "Reland "[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown"" and it's follow-ups 2020-10-14 16:09:18 +03:00
LazyCallGraphTest.cpp [LazyCallGraph] Build SCCs of the reference graph in order 2020-11-02 13:22:42 -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
MemorySSATest.cpp [MemorySSA] Use provided memory location even if instruction is call 2020-11-04 20:30:22 +01:00
PhiValuesTest.cpp
ProfileSummaryInfoTest.cpp Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
ScalarEvolutionTest.cpp [SCEV] Match 'zext (trunc A to iB) to iY' as URem. 2020-10-29 10:46:52 +00:00
SparsePropagation.cpp [CallSite removal][Analysis] Use CallBase instead of CallSite in SparsePropagation unit test. NFC 2020-04-19 22:39:24 -07:00
TBAATest.cpp
TFUtilsTest.cpp [ML] Add final reward logging facility. 2020-10-19 08:44:50 -07:00
TargetLibraryInfoTest.cpp [SimplifyLibCalls] Optimize mempcpy_chk to mempcpy 2020-10-06 17:08:46 +02: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] Add more tests for alignment assume bundles 2020-10-27 12:16:45 +00:00
VectorFunctionABITest.cpp Fix crash when getVFABIMappings is called with an indirect call instruction 2020-07-13 15:28:46 +01:00
VectorUtilsTest.cpp Revert "Revert "[NFC][llvm] Make the contructors of `ElementCount` private."" 2020-08-19 17:26:36 +00:00