Skip to content

Commit 9373a43

Browse files
authored
[Attributor] Indicate optimistic fixed point if an instruction already has non-zero address space (#101589)
1 parent ca26ea2 commit 9373a43

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

llvm/lib/Transforms/IPO/AttributorAttributes.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12491,6 +12491,9 @@ struct AAAddressSpaceImpl : public AAAddressSpace {
1249112491
void initialize(Attributor &A) override {
1249212492
assert(getAssociatedType()->isPtrOrPtrVectorTy() &&
1249312493
"Associated value is not a pointer");
12494+
auto *PtrTy = cast<PointerType>(getAssociatedType());
12495+
if (PtrTy->getAddressSpace())
12496+
indicateOptimisticFixpoint();
1249412497
}
1249512498

1249612499
ChangeStatus updateImpl(Attributor &A) override {

llvm/test/Transforms/Attributor/memory_locations_gpu.ll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ define i32 @test_const_as_call2() {
5555
; CHECK-LABEL: define {{[^@]+}}@test_const_as_call2
5656
; CHECK-SAME: () #[[ATTR3:[0-9]+]] {
5757
; CHECK-NEXT: [[P2:%.*]] = call ptr @ptr() #[[ATTR4]]
58-
; CHECK-NEXT: [[L2:%.*]] = load i32, ptr [[P2]], align 4
58+
; CHECK-NEXT: [[C2:%.*]] = addrspacecast ptr [[P2]] to ptr addrspace(4)
59+
; CHECK-NEXT: [[L2:%.*]] = load i32, ptr addrspace(4) [[C2]], align 4
5960
; CHECK-NEXT: ret i32 [[L2]]
6061
;
6162
%p2 = call ptr @ptr()
@@ -84,7 +85,8 @@ define i32 @test_shared_as_call2() {
8485
; CHECK-LABEL: define {{[^@]+}}@test_shared_as_call2
8586
; CHECK-SAME: () #[[ATTR2]] {
8687
; CHECK-NEXT: [[P2:%.*]] = call ptr @ptr() #[[ATTR4]]
87-
; CHECK-NEXT: [[L2:%.*]] = load i32, ptr [[P2]], align 4
88+
; CHECK-NEXT: [[C2:%.*]] = addrspacecast ptr [[P2]] to ptr addrspace(3)
89+
; CHECK-NEXT: [[L2:%.*]] = load i32, ptr addrspace(3) [[C2]], align 4
8890
; CHECK-NEXT: ret i32 [[L2]]
8991
;
9092
%p2 = call ptr @ptr()

0 commit comments

Comments
 (0)