mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
7262615ba5
I'm currently working on a GSoC project that aims to improve the the bug reports of the analyzer. The main heuristic I plan to use is to explain values that are a control dependency of the bug location better. 01 bool b = messyComputation(); 02 int i = 0; 03 if (b) // control dependency of the bug site, let's explain why we assume val 04 // to be true 05 10 / i; // warn: division by zero Because of this, I'd like to generalize IDFCalculator so that I could use it for Clang's CFG: D62883. In detail: * Rename IDFCalculator to IDFCalculatorBase, make it take a general CFG node type as a template argument rather then strictly BasicBlock (but preserve ForwardIDFCalculator and ReverseIDFCalculator) * Move IDFCalculatorBase from llvm/include/llvm/Analysis to llvm/include/llvm/Support (but leave the BasicBlock variants in llvm/include/llvm/Analysis) * clang-format the file since this patch messes up git blame anyways * Change typedef to using * Add the new type ChildrenGetterTy, and store an instance of it in IDFCalculatorBase. This is important because I'll have to specialize it for Clang's CFG to filter out nullpointer successors, similarly to D62507. Differential Revision: https://reviews.llvm.org/D63389 llvm-svn: 364911
104 lines
2.2 KiB
CMake
104 lines
2.2 KiB
CMake
add_llvm_library(LLVMAnalysis
|
|
AliasAnalysis.cpp
|
|
AliasAnalysisEvaluator.cpp
|
|
AliasAnalysisSummary.cpp
|
|
AliasSetTracker.cpp
|
|
Analysis.cpp
|
|
AssumptionCache.cpp
|
|
BasicAliasAnalysis.cpp
|
|
BlockFrequencyInfo.cpp
|
|
BlockFrequencyInfoImpl.cpp
|
|
BranchProbabilityInfo.cpp
|
|
CFG.cpp
|
|
CFGPrinter.cpp
|
|
CFLAndersAliasAnalysis.cpp
|
|
CFLSteensAliasAnalysis.cpp
|
|
CGSCCPassManager.cpp
|
|
CallGraph.cpp
|
|
CallGraphSCCPass.cpp
|
|
CallPrinter.cpp
|
|
CaptureTracking.cpp
|
|
CmpInstAnalysis.cpp
|
|
CostModel.cpp
|
|
CodeMetrics.cpp
|
|
ConstantFolding.cpp
|
|
Delinearization.cpp
|
|
DemandedBits.cpp
|
|
DependenceAnalysis.cpp
|
|
DivergenceAnalysis.cpp
|
|
DomPrinter.cpp
|
|
DomTreeUpdater.cpp
|
|
DominanceFrontier.cpp
|
|
EHPersonalities.cpp
|
|
GlobalsModRef.cpp
|
|
GuardUtils.cpp
|
|
IVDescriptors.cpp
|
|
IVUsers.cpp
|
|
IndirectCallPromotionAnalysis.cpp
|
|
InlineCost.cpp
|
|
InstCount.cpp
|
|
InstructionPrecedenceTracking.cpp
|
|
InstructionSimplify.cpp
|
|
Interval.cpp
|
|
IntervalPartition.cpp
|
|
LazyBranchProbabilityInfo.cpp
|
|
LazyBlockFrequencyInfo.cpp
|
|
LazyCallGraph.cpp
|
|
LazyValueInfo.cpp
|
|
LegacyDivergenceAnalysis.cpp
|
|
Lint.cpp
|
|
Loads.cpp
|
|
LoopAccessAnalysis.cpp
|
|
LoopAnalysisManager.cpp
|
|
LoopUnrollAnalyzer.cpp
|
|
LoopInfo.cpp
|
|
LoopPass.cpp
|
|
MemDepPrinter.cpp
|
|
MemDerefPrinter.cpp
|
|
MemoryBuiltins.cpp
|
|
MemoryDependenceAnalysis.cpp
|
|
MemoryLocation.cpp
|
|
MemorySSA.cpp
|
|
MemorySSAUpdater.cpp
|
|
ModuleDebugInfoPrinter.cpp
|
|
ModuleSummaryAnalysis.cpp
|
|
MustExecute.cpp
|
|
ObjCARCAliasAnalysis.cpp
|
|
ObjCARCAnalysisUtils.cpp
|
|
ObjCARCInstKind.cpp
|
|
OptimizationRemarkEmitter.cpp
|
|
OrderedBasicBlock.cpp
|
|
OrderedInstructions.cpp
|
|
PHITransAddr.cpp
|
|
PhiValues.cpp
|
|
PostDominators.cpp
|
|
ProfileSummaryInfo.cpp
|
|
PtrUseVisitor.cpp
|
|
RegionInfo.cpp
|
|
RegionPass.cpp
|
|
RegionPrinter.cpp
|
|
ScalarEvolution.cpp
|
|
ScalarEvolutionAliasAnalysis.cpp
|
|
ScalarEvolutionExpander.cpp
|
|
ScalarEvolutionNormalization.cpp
|
|
StackSafetyAnalysis.cpp
|
|
SyncDependenceAnalysis.cpp
|
|
SyntheticCountsUtils.cpp
|
|
TargetLibraryInfo.cpp
|
|
TargetTransformInfo.cpp
|
|
Trace.cpp
|
|
TypeBasedAliasAnalysis.cpp
|
|
TypeMetadataUtils.cpp
|
|
ScopedNoAliasAA.cpp
|
|
ValueLattice.cpp
|
|
ValueLatticeUtils.cpp
|
|
ValueTracking.cpp
|
|
VectorUtils.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Analysis
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
)
|