File tree 2 files changed +7
-2
lines changed
test/Transforms/Attributor
2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -12491,6 +12491,9 @@ struct AAAddressSpaceImpl : public AAAddressSpace {
12491
12491
void initialize(Attributor &A) override {
12492
12492
assert(getAssociatedType()->isPtrOrPtrVectorTy() &&
12493
12493
"Associated value is not a pointer");
12494
+ auto *PtrTy = cast<PointerType>(getAssociatedType());
12495
+ if (PtrTy->getAddressSpace())
12496
+ indicateOptimisticFixpoint();
12494
12497
}
12495
12498
12496
12499
ChangeStatus updateImpl(Attributor &A) override {
Original file line number Diff line number Diff line change @@ -55,7 +55,8 @@ define i32 @test_const_as_call2() {
55
55
; CHECK-LABEL: define {{[^@]+}}@test_const_as_call2
56
56
; CHECK-SAME: () #[[ATTR3:[0-9]+]] {
57
57
; 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
59
60
; CHECK-NEXT: ret i32 [[L2]]
60
61
;
61
62
%p2 = call ptr @ptr ()
@@ -84,7 +85,8 @@ define i32 @test_shared_as_call2() {
84
85
; CHECK-LABEL: define {{[^@]+}}@test_shared_as_call2
85
86
; CHECK-SAME: () #[[ATTR2]] {
86
87
; 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
88
90
; CHECK-NEXT: ret i32 [[L2]]
89
91
;
90
92
%p2 = call ptr @ptr ()
You can’t perform that action at this time.
0 commit comments