1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Analysis/BasicAA
Reid Kleckner 6e852d9c3d [BasicAA] Don't assume tail calls with byval don't alias allocas
Summary:
Calls marked 'tail' cannot read or write allocas from the current frame
because the current frame might be destroyed by the time they run.
However, a tail call may use an alloca with byval. Calling with byval
copies the contents of the alloca into argument registers or stack
slots, so there is no lifetime issue. Tail calls never modify allocas,
so we can return just ModRefInfo::Ref.

Fixes PR38466, a longstanding bug.

Reviewers: hfinkel, nlewycky, gbiv, george.burgess.iv

Subscribers: hiraditya, llvm-commits

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

llvm-svn: 339636
2018-08-14 01:24:35 +00:00
..
2003-02-26-AccessSizeTest.ll
2003-03-04-GEPCrash.ll
2003-04-22-GEPProblem.ll
2003-04-25-GEPCrash.ll
2003-05-21-GEP-Problem.ll
2003-06-01-AliasCrash.ll
2003-07-03-BasicAACrash.ll
2003-09-19-LocalArgument.ll
2003-11-04-SimpleCases.ll
2003-12-11-ConstExprGEP.ll
2004-07-28-MustAliasbug.ll
2006-03-03-BadArraySubscript.ll
2006-11-03-BasicAAVectorCrash.ll
2007-01-13-BasePointerBadNoAlias.ll
2007-08-01-NoAliasAndCalls.ll
2007-08-01-NoAliasAndGEP.ll
2007-08-05-GetOverloadedModRef.ll
2007-10-24-ArgumentsGlobals.ll
2007-11-05-SizeCrash.ll
2007-12-08-OutOfBoundsCrash.ll
2008-04-15-Byval.ll
2008-06-02-GEPTailCrash.ll
2008-11-23-NoaliasRet.ll
2009-03-04-GEPNoalias.ll
2009-10-13-AtomicModRef.ll
2009-10-13-GEP-BaseNoAlias.ll
2010-09-15-GEP-SignedArithmetic.ll
2014-03-18-Maxlookup-reached.ll
aligned-overread.ll
args-rets-allocas-loads.ll
assume.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
bug.23540.ll
bug.23626.ll
byval.ll
call-attrs.ll
cas.ll
constant-over-index.ll
cs-cs-arm.ll
cs-cs.ll [BasicAA] Teach the analysis about atomic memcpy 2018-05-29 19:23:50 +00:00
dag.ll
empty.ll
fallback-mayalias.ll
featuretest.ll
full-store-partial-alias.ll
gcsetest.ll
gep-alias.ll
gep-and-alias.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
getmodrefinfo-cs-cs.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
global-size.ll
guards.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
intrinsics-arm.ll
intrinsics.ll
invalidation.ll [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
invariant_group.ll [BasicAA] Fix handling of invariant group launders 2018-05-16 13:16:54 +00:00
invariant_load.ll
memset_pattern.ll
modref.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
must-and-partial.ll
negoffset.ll [BasicAA] Return MayAlias for the pointer plus variable offset to 2018-04-16 01:58:39 +00:00
no-escape-call.ll
noalias-bugs.ll
noalias-geps.ll
noalias-param.ll
noalias-wraparound-bug.ll
nocapture.ll
phi-aa.ll [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
phi-and-select.ll
phi-loop.ll
phi-spec-order.ll
phi-speculation.ll
phi-values-usage.ll [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
pr18573.ll
pr31761.ll
pr35821.ll [BasicAA] Fix linearization of shifts beyond the bitwidth. 2018-01-05 16:18:47 +00:00
pr35843.ll [BasicAA] Stop crashing when dealing with pointers > 64 bits. 2018-01-15 01:40:18 +00:00
pure-const-dce.ll
q.bad.ll
returned.ll
sequential-gep.ll
store-promote.ll
struct-geps.ll
tail-byval.ll [BasicAA] Don't assume tail calls with byval don't alias allocas 2018-08-14 01:24:35 +00:00
tailcall-modref.ll
underlying-value.ll
unreachable-block.ll
zext.ll