summaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2024-08-06 00:14:02 +0400
committerGitHub <noreply@github.com>2024-08-06 00:14:02 +0400
commitf01a6f5ecb6c6969ee4ac4fdf6e1ab3d98c31309 (patch)
treed59633f41cc0003516ea31ce8802e4a4c768a409 /llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
parent72825fde03aab3ce9eba2635b872144d1fb6b6b2 (diff)
InferAddressSpaces: Handle prefetch intrinsic (#101982)
Diffstat (limited to 'llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp b/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
index 830c15249582..87b885447cc0 100644
--- a/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
+++ b/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
@@ -401,6 +401,13 @@ bool InferAddressSpacesImpl::rewriteIntrinsicOperands(IntrinsicInst *II,
II->setCalledFunction(NewDecl);
return true;
}
+ case Intrinsic::prefetch: {
+ Function *NewDecl =
+ Intrinsic::getDeclaration(M, II->getIntrinsicID(), {NewV->getType()});
+ II->setArgOperand(0, NewV);
+ II->setCalledFunction(NewDecl);
+ return true;
+ }
default: {
Value *Rewrite = TTI->rewriteIntrinsicWithAddressSpace(II, OldV, NewV);
if (!Rewrite)
@@ -423,6 +430,7 @@ void InferAddressSpacesImpl::collectRewritableIntrinsicOperands(
PostorderStack, Visited);
break;
case Intrinsic::masked_gather:
+ case Intrinsic::prefetch:
appendsFlatAddressExpressionToPostorderStack(II->getArgOperand(0),
PostorderStack, Visited);
break;