[llvm] [memprof] Migrate away from PointerUnion::dyn_cast (NFC) (PR #123716)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 21 01:23:12 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Kazu Hirata (kazutakahirata)
<details>
<summary>Changes</summary>
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect the arguments to be nonnull. Note that all these
cases have assert and/or dereferences just after dyn_cast, implying
that the return value from dyn_cast must be nonnull.
This patch uses cast<CallsiteInfo *> instead of
dyn_cast<CallsiteInfo *> in one place where we know that the argument
satisfies isa<CallsiteInfo *> because of the "if" condition.
---
Full diff: https://github.com/llvm/llvm-project/pull/123716.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp (+5-5)
``````````diff
diff --git a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
index 988e912b2de838..51a2e891ff0cf5 100644
--- a/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+++ b/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
@@ -3542,7 +3542,7 @@ void ModuleCallsiteContextGraph::updateAllocationCall(
void IndexCallsiteContextGraph::updateAllocationCall(CallInfo &Call,
AllocationType AllocType) {
- auto *AI = Call.call().dyn_cast<AllocInfo *>();
+ auto *AI = dyn_cast<AllocInfo *>(Call.call());
assert(AI);
assert(AI->Versions.size() > Call.cloneNo());
AI->Versions[Call.cloneNo()] = (uint8_t)AllocType;
@@ -3560,7 +3560,7 @@ ModuleCallsiteContextGraph::getAllocationCallType(const CallInfo &Call) const {
AllocationType
IndexCallsiteContextGraph::getAllocationCallType(const CallInfo &Call) const {
- const auto *AI = Call.call().dyn_cast<AllocInfo *>();
+ const auto *AI = dyn_cast<AllocInfo *>(Call.call());
assert(AI->Versions.size() > Call.cloneNo());
return (AllocationType)AI->Versions[Call.cloneNo()];
}
@@ -3579,7 +3579,7 @@ void ModuleCallsiteContextGraph::updateCall(CallInfo &CallerCall,
void IndexCallsiteContextGraph::updateCall(CallInfo &CallerCall,
FuncInfo CalleeFunc) {
- auto *CI = CallerCall.call().dyn_cast<CallsiteInfo *>();
+ auto *CI = dyn_cast<CallsiteInfo *>(CallerCall.call());
assert(CI &&
"Caller cannot be an allocation which should not have profiled calls");
assert(CI->Clones.size() > CallerCall.cloneNo());
@@ -3630,13 +3630,13 @@ IndexCallsiteContextGraph::cloneFunctionForCallsite(
for (auto &Inst : CallsWithMetadataInFunc) {
// This map always has the initial version in it.
assert(Inst.cloneNo() == 0);
- if (auto *AI = Inst.call().dyn_cast<AllocInfo *>()) {
+ if (auto *AI = dyn_cast<AllocInfo *>(Inst.call())) {
assert(AI->Versions.size() == CloneNo);
// We assign the allocation type later (in updateAllocationCall), just add
// an entry for it here.
AI->Versions.push_back(0);
} else {
- auto *CI = Inst.call().dyn_cast<CallsiteInfo *>();
+ auto *CI = cast<CallsiteInfo *>(Inst.call());
assert(CI && CI->Clones.size() == CloneNo);
// We assign the clone number later (in updateCall), just add an entry for
// it here.
``````````
</details>
https://github.com/llvm/llvm-project/pull/123716
More information about the llvm-commits
mailing list