1
0
mirror of https://github.com/RPCSX/llvm.git synced 2024-12-14 07:31:47 +00:00
llvm/test/Analysis/CFLAliasAnalysis
George Burgess IV a8ddf55110 [CFLAA] Fix PR27213; incorrect tagging of args/globals
Prior to this patch, CFLAA wouldn't tag arguments/globals properly if
it didn't find any "interesting" edges on them. This means that, if all
you do is store constants to a global or argument, we would never
actually treat it as a global/argument.

Test case:

define void @foo(i32* %A, i32* %B)  {
entry:
  store i32 0, i32* %A, align 4
  store i32 0, i32* %B, align 4
  ret void
}

CFLAA would say that %A can't alias %B, because neither pointer was
used in an interesting way. This patch makes us note whether something
is an argument, global, ... regardless of how interesting CFLAA thinks
its uses are.

(For the record, using a value in an interesting way means loading
from it, using it in a GEP, ...)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265474 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-05 21:40:45 +00:00
..
arguments-globals.ll
arguments.ll
asm-global-bugfix.ll
basic-interproc-ret.ll
basic-interproc.ll [CFLAA] Fix PR27213; incorrect tagging of args/globals 2016-04-05 21:40:45 +00:00
branch-alias.ll
const-expr-gep.ll
constant-over-index.ll
empty.ll
full-store-partial-alias.ll
gep-signed-arithmetic.ll
multilevel-combine.ll
multilevel.ll
must-and-partial.ll
opaque-call-alias.ll
phi-and-select.ll
pr27213.ll [CFLAA] Fix PR27213; incorrect tagging of args/globals 2016-04-05 21:40:45 +00:00
simple.ll
stratified-attrs-indexing.ll
va.ll