llvm-project/llvm/test/Analysis
Johannes Doerfert 22e6e108e1 [BasicAA] Use dereferenceability to reason about aliasing
Summary:
We already use the fact that an object with known size X does not alias
another objection of size Y > X before. With this commit, we use
dereferenceability information to determine a lower bound for Y and not
only rely on the user provided query size.

The result for @global_and_deref_arg_2() and @local_and_deref_ret_2()
in test/Analysis/BasicAA/dereferenceable.ll improved with this patch.

Reviewers: asbirlea, chandlerc, hfinkel, sanjoy

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

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

llvm-svn: 369786
2019-08-23 17:56:10 +00:00
..
AliasSet [Analysis] Make LocationSize pretty-printing more descriptive 2018-10-10 01:35:22 +00:00
AssumptionCache
BasicAA [BasicAA] Use dereferenceability to reason about aliasing 2019-08-23 17:56:10 +00:00
BlockFrequencyInfo [BFI] Use rounding while computing profile counts. 2018-08-16 00:26:59 +00:00
BranchProbabilityInfo [BPI] Look through bitcasts in calcZeroHeuristic 2019-02-15 11:50:21 +00:00
CFLAliasAnalysis [CFLGraph] Add support for unary fneg instruction. 2019-06-06 19:21:23 +00:00
CallGraph Revert "[CallGraph] Refine call graph for indirect calls with !callees metadata" 2019-08-16 10:59:18 +00:00
ConstantFolding Fix pointer width in test from r366754. 2019-07-22 23:32:41 +00:00
CostModel [X86] Lower the cost of v2i32->v2f64 sint_to_fp under vector widening legalization. 2019-08-22 08:18:45 +00:00
Delinearization Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
DemandedBits Reapply "[DemandedBits][BDCE] Support vectors of integers" 2018-12-07 15:38:13 +00:00
DependenceAnalysis [DA] Add an option to control delinearization validity checks 2019-06-10 15:29:07 +00:00
DivergenceAnalysis [AMDGPU] ImmArg and SourceOfDivergence for permlane/dpp 2019-06-13 16:31:51 +00:00
DominanceFrontier IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
Dominators
GlobalsModRef
IVUsers Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
LazyCallGraph Revert "[CallGraph] Refine call graph for indirect calls with !callees metadata" 2019-08-16 10:59:18 +00:00
LazyValueAnalysis [LVI] run transfer function for binary operator even when the RHS isn't a constant 2018-11-21 05:24:12 +00:00
LegacyDivergenceAnalysis [AMDGPU] Add support for 64 bit buffer atomic artihmetic instructions 2019-03-06 17:02:06 +00:00
Lint [Lint] Permit aliasing noalias readonly arguments 2019-04-23 23:43:47 +00:00
LoopAccessAnalysis Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS" 2019-07-07 22:12:01 +00:00
LoopCacheAnalysis/PowerPC Title: Improve Loop Cache Analysis LIT tests. 2019-08-09 16:18:22 +00:00
LoopInfo Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
MemoryDependenceAnalysis [AliasAnalysis/NewPassManager] Invalidate AAManager less often. 2019-04-30 22:15:47 +00:00
MemorySSA [MemorySSA] Fix existing phis when inserting defs. 2019-08-20 22:29:06 +00:00
MustExecute [MustExec] Add a generic "must-be-executed-context" explorer 2019-08-23 15:17:27 +00:00
PhiValues Add a PhiValuesAnalysis pass to calculate the underlying values of phis 2018-06-28 14:13:06 +00:00
PostDominators
ProfileSummary [ProfileSummary] Add options to override hot and cold count thresholds. 2018-11-02 17:39:31 +00:00
RegionInfo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
ScalarEvolution [SCEV] add no wrap flag for SCEVAddExpr. 2019-07-18 09:23:19 +00:00
ScopedNoAliasAA
StackSafetyAnalysis [stack-safety] Inter-Procedural Analysis implementation 2018-11-26 23:05:58 +00:00
TypeBasedAliasAnalysis [BuildLibCalls] Noalias annotation 2019-08-14 16:50:06 +00:00
ValueTracking [IR][Verifier] Allow IntToPtrInst to be !dereferenceable 2019-07-23 17:19:56 +00:00
alias-analysis-uses.ll