mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-30 17:33:24 +00:00
ad43499fc4
Patch from Preston Briggs <preston.briggs@gmail.com>. This is an updated version of the dependence-analysis patch, including an MIV test based on Banerjee's inequalities. It's a fairly complete implementation of the paper Practical Dependence Testing Gina Goff, Ken Kennedy, and Chau-Wen Tseng PLDI 1991 It cannot yet propagate constraints between coupled RDIV subscripts (discussed in Section 5.3.2 of the paper). It's organized as a FunctionPass with a single entry point that supports testing for dependence between two instructions in a function. If there's no dependence, it returns null. If there's a dependence, it returns a pointer to a Dependence which can be queried about details (what kind of dependence, is it loop independent, direction and distance vector entries, etc). I haven't included every imaginable feature, but there's a good selection that should be adequate for supporting many loop transformations. Of course, it can be extended as necessary. Included in the patch file are many test cases, commented with C code showing the loops and array references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165708 91177308-0d34-0410-b5e6-96231b3b80d8
66 lines
1.4 KiB
CMake
66 lines
1.4 KiB
CMake
add_llvm_library(LLVMAnalysis
|
|
AliasAnalysis.cpp
|
|
AliasAnalysisCounter.cpp
|
|
AliasAnalysisEvaluator.cpp
|
|
AliasDebugger.cpp
|
|
AliasSetTracker.cpp
|
|
Analysis.cpp
|
|
BasicAliasAnalysis.cpp
|
|
BlockFrequencyInfo.cpp
|
|
BranchProbabilityInfo.cpp
|
|
CFGPrinter.cpp
|
|
CaptureTracking.cpp
|
|
CodeMetrics.cpp
|
|
ConstantFolding.cpp
|
|
DbgInfoPrinter.cpp
|
|
DependenceAnalysis.cpp
|
|
DomPrinter.cpp
|
|
DominanceFrontier.cpp
|
|
IVUsers.cpp
|
|
InlineCost.cpp
|
|
InstCount.cpp
|
|
InstructionSimplify.cpp
|
|
Interval.cpp
|
|
IntervalPartition.cpp
|
|
LazyValueInfo.cpp
|
|
LibCallAliasAnalysis.cpp
|
|
LibCallSemantics.cpp
|
|
Lint.cpp
|
|
Loads.cpp
|
|
LoopDependenceAnalysis.cpp
|
|
LoopInfo.cpp
|
|
LoopPass.cpp
|
|
MemDepPrinter.cpp
|
|
MemoryBuiltins.cpp
|
|
MemoryDependenceAnalysis.cpp
|
|
ModuleDebugInfoPrinter.cpp
|
|
NoAliasAnalysis.cpp
|
|
PHITransAddr.cpp
|
|
PathNumbering.cpp
|
|
PathProfileInfo.cpp
|
|
PathProfileVerifier.cpp
|
|
PostDominators.cpp
|
|
ProfileEstimatorPass.cpp
|
|
ProfileInfo.cpp
|
|
ProfileInfoLoader.cpp
|
|
ProfileInfoLoaderPass.cpp
|
|
ProfileVerifierPass.cpp
|
|
ProfileDataLoader.cpp
|
|
ProfileDataLoaderPass.cpp
|
|
RegionInfo.cpp
|
|
RegionPass.cpp
|
|
RegionPrinter.cpp
|
|
ScalarEvolution.cpp
|
|
ScalarEvolutionAliasAnalysis.cpp
|
|
ScalarEvolutionExpander.cpp
|
|
ScalarEvolutionNormalization.cpp
|
|
SparsePropagation.cpp
|
|
Trace.cpp
|
|
TypeBasedAliasAnalysis.cpp
|
|
ValueTracking.cpp
|
|
)
|
|
|
|
add_dependencies(LLVMAnalysis intrinsics_gen)
|
|
|
|
add_subdirectory(IPA)
|