Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ AliasResult AMDGPUAAResult::alias(const MemoryLocation &LocA,
// variables in shared or private address space.
const auto *ObjB =
getUnderlyingObject(B.Ptr->stripPointerCastsForAliasAnalysis());
return (ObjA == ObjB) ? AliasResult::MustAlias : AliasResult::NoAlias;
return isIdentifiedObject(ObjB) && ObjA != ObjB ? AliasResult::NoAlias
: AliasResult::MayAlias;
}
default:
// TODO: In the regular function, if that local variable in the
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,9 @@ define void @test_9_9(ptr addrspace(9) %p, ptr addrspace(9) %p1) {
}

; CHECK-LABEL: Function: test_kernel_arg_local_ptr
; CHECK: MayAlias: i32 addrspace(3)* %arg, i32 addrspace(3)* %arg1
; CHECK: MustAlias: i32 addrspace(3)* %arg, i32* %arg2
; CHECK: MustAlias: i32 addrspace(3)* %arg1, i32* %arg2
; CHECK: MayAlias: i32 addrspace(3)* %arg, i32 addrspace(3)* %arg1
; CHECK: MayAlias: i32 addrspace(3)* %arg, i32* %arg2
; CHECK: MayAlias: i32 addrspace(3)* %arg1, i32* %arg2
define amdgpu_kernel void @test_kernel_arg_local_ptr(ptr addrspace(3) %arg) {
entry:
%load1 = load i32, ptr addrspace(3) %arg, align 4
Expand Down
Loading