aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/InlineFunction.cpp
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2021-01-23 22:38:43 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-01-23 22:40:32 +0100
commitc83cff45c7a58010e65270d3f5bfb8c9a72ad832 (patch)
tree7aa949336ccf63692fffdc1bc76ddd845e738922 /llvm/lib/Transforms/Utils/InlineFunction.cpp
parentc37dd3b6d553d7ae3afaf677f1c6abdf6b1ec74e (diff)
downloadllvm-c83cff45c7a58010e65270d3f5bfb8c9a72ad832.zip
llvm-c83cff45c7a58010e65270d3f5bfb8c9a72ad832.tar.gz
llvm-c83cff45c7a58010e65270d3f5bfb8c9a72ad832.tar.bz2
[IR] Add NoAliasScopeDeclInst (NFC)
Add an intrinsic type class to represent the llvm.experimental.noalias.scope.decl intrinsic, to make code working with it a bit nicer by hiding the metadata extraction from view.
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/InlineFunction.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp
index abdd2b2..2f8f366 100644
--- a/llvm/lib/Transforms/Utils/InlineFunction.cpp
+++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp
@@ -859,13 +859,8 @@ ScopedAliasMetadataDeepCloner::ScopedAliasMetadataDeepCloner(
MD.insert(M);
// We also need to clone the metadata in noalias intrinsics.
- if (const auto *II = dyn_cast<IntrinsicInst>(&I))
- if (II->getIntrinsicID() == Intrinsic::experimental_noalias_scope_decl)
- if (const auto *M = dyn_cast<MDNode>(
- cast<MetadataAsValue>(
- II->getOperand(Intrinsic::NoAliasScopeDeclScopeArg))
- ->getMetadata()))
- MD.insert(M);
+ if (const auto *Decl = dyn_cast<NoAliasScopeDeclInst>(&I))
+ MD.insert(Decl->getScopeList());
}
}
addRecursiveMetadataUses();
@@ -932,14 +927,11 @@ void ScopedAliasMetadataDeepCloner::remap(ValueToValueMapTy &VMap) {
if (MDNode *M = I->getMetadata(LLVMContext::MD_noalias))
I->setMetadata(LLVMContext::MD_noalias, MDMap[M]);
- if (auto *II = dyn_cast<IntrinsicInst>(I))
- if (II->getIntrinsicID() == Intrinsic::experimental_noalias_scope_decl) {
- auto *MV = cast<MetadataAsValue>(
- II->getOperand(Intrinsic::NoAliasScopeDeclScopeArg));
- auto *NewMV = MetadataAsValue::get(
- II->getContext(), MDMap[cast<MDNode>(MV->getMetadata())]);
- II->setOperand(Intrinsic::NoAliasScopeDeclScopeArg, NewMV);
- }
+ if (auto *Decl = dyn_cast<NoAliasScopeDeclInst>(I)) {
+ auto *NewMV =
+ MetadataAsValue::get(Decl->getContext(), MDMap[Decl->getScopeList()]);
+ Decl->setOperand(Intrinsic::NoAliasScopeDeclScopeArg, NewMV);
+ }
}
}