llvm-project/llvm/unittests/Analysis
Matthew Simpson 28799a2509 [SparsePropagation] Enable interprocedural analysis
This patch adds the ability to perform IPSCCP-like interprocedural analysis to
the generic sparse propagation solver. The patch gives clients the ability to
define their own custom LatticeKey types that the generic solver maps to custom
LatticeVal types. The custom lattice keys can be used, for example, to
distinguish among mappings for regular values, values returned from functions,
and values stored in global variables. Clients are responsible for defining how
to convert between LatticeKeys and LLVM Values by providing a specialization of
the LatticeKeyInfo template.

The added unit tests demonstrate how the generic solver can be used to perform
a simplified version of interprocedural constant propagation.

Differential Revision: https://reviews.llvm.org/D37353

llvm-svn: 315919
2017-10-16 17:44:17 +00:00
..
AliasAnalysisTest.cpp Allow None as a MemoryLocation to getModRefInfo 2017-08-01 00:28:29 +00:00
AliasSetTrackerTest.cpp [AST] Fix a bug in aliasesUnknownInst. Make sure we are comparing the unknown instructions in the alias set and the instruction interested in. 2017-06-25 12:55:11 +00:00
BlockFrequencyInfoTest.cpp Add an interface to scale the frequencies of a set of blocks. 2017-01-19 18:53:16 +00:00
BranchProbabilityInfoTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
CFGTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
CGSCCPassManagerTest.cpp [PM] Switch the CGSCC debug messages to use the standard LLVM debug 2017-08-11 05:47:13 +00:00
CMakeLists.txt [SparsePropagation] Enable interprocedural analysis 2017-10-16 17:44:17 +00:00
CallGraphTest.cpp [GraphTraits] Replace all NodeType usage with NodeRef 2016-08-22 21:09:30 +00:00
GlobalsModRefTest.cpp GlobalsModRef: Ensure optnone+readonly/readnone attributes are respected 2017-06-07 21:37:39 +00:00
LazyCallGraphTest.cpp [LCG] Switch one of the update methods for the LazyCallGraph to support 2017-08-09 09:05:27 +00:00
LoopInfoTest.cpp [LoopInfo] Add helper methods to compute two useful orderings of the 2017-01-20 02:41:20 +00:00
MemoryBuiltinsTest.cpp Don't consider allocsize functions to be allocation functions. 2016-12-23 01:18:09 +00:00
MemorySSA.cpp [mssa] Fix case when there is no definition in a block prior to an inserted use. 2017-06-07 16:46:53 +00:00
OrderedBasicBlockTest.cpp [OrderedBasicBlock] Return false for comesBefore(A, A) 2017-06-02 13:10:31 +00:00
ProfileSummaryInfoTest.cpp Do not want to use BFI to get profile count for sample pgo 2017-08-03 17:11:41 +00:00
ScalarEvolutionTest.cpp [SCEV] Maintain and use a loop->loop invalidation dependency 2017-10-13 17:13:44 +00:00
SparsePropagation.cpp [SparsePropagation] Enable interprocedural analysis 2017-10-16 17:44:17 +00:00
TBAATest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
TargetLibraryInfoTest.cpp Revert "Add pthread_self function prototype and make it speculatable." 2017-05-21 00:37:55 +00:00
UnrollAnalyzer.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
ValueLatticeTest.cpp [LVI] Move LVILatticeVal class to separate header file (NFC). 2017-09-28 11:09:22 +00:00
ValueTrackingTest.cpp [ValueTracking] Avoid undefined behavior in unittest by not making a named ArrayRef from a std::initializer_list 2017-04-14 17:59:19 +00:00