mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Teach BasicAA about noalias parameter attributes, but do it correctly this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40711 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep 'MayAlias: i32* %y, i32* %x'
|
||||
|
||||
declare i32* @unclear(i32* %a)
|
||||
|
||||
define void @foo(i32* noalias %x) {
|
||||
%y = call i32* @unclear(i32* %x)
|
||||
store i32 0, i32* %x
|
||||
store i32 0, i32* %y
|
||||
ret void
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep '9 no alias'
|
||||
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep '6 may alias'
|
||||
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep 'MayAlias: i32* %pj, i32* %pi'
|
||||
|
||||
define void @foo(i32* noalias %p, i32* noalias %q, i32 %i, i32 %j) {
|
||||
%pi = getelementptr i32* %p, i32 %i
|
||||
%qi = getelementptr i32* %q, i32 %i
|
||||
%pj = getelementptr i32* %p, i32 %j
|
||||
%qj = getelementptr i32* %q, i32 %j
|
||||
store i32 0, i32* %p
|
||||
store i32 0, i32* %pi
|
||||
store i32 0, i32* %pj
|
||||
store i32 0, i32* %q
|
||||
store i32 0, i32* %qi
|
||||
store i32 0, i32* %qj
|
||||
ret void
|
||||
}
|
||||
Reference in New Issue
Block a user