[flang] Migrate away from PointerUnion::{is,get} (NFC) (#120880)
Note that PointerUnion::{is,get} have 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>
I'm not touching PointerUnion::dyn_cast for now because it's a bit
complicated; we could blindly migrate it to dyn_cast_if_present, but
we should probably use dyn_cast when the operand is known to be
non-null.
This commit is contained in:
@@ -1613,12 +1613,13 @@ struct EmboxCommonConversion : public fir::FIROpConversion<OP> {
|
||||
if (gepArgs.size() != 1)
|
||||
fir::emitFatalError(loc,
|
||||
"corrupted substring GEP in fir.embox/fir.rebox");
|
||||
mlir::Type outterOffsetTy = gepArgs[0].get<mlir::Value>().getType();
|
||||
mlir::Type outterOffsetTy =
|
||||
llvm::cast<mlir::Value>(gepArgs[0]).getType();
|
||||
mlir::Value cast =
|
||||
this->integerCast(loc, rewriter, outterOffsetTy, *substringOffset);
|
||||
|
||||
gepArgs[0] = rewriter.create<mlir::LLVM::AddOp>(
|
||||
loc, outterOffsetTy, gepArgs[0].get<mlir::Value>(), cast);
|
||||
loc, outterOffsetTy, llvm::cast<mlir::Value>(gepArgs[0]), cast);
|
||||
}
|
||||
}
|
||||
mlir::Type llvmPtrTy = ::getLlvmPtrType(resultTy.getContext());
|
||||
|
||||
@@ -227,7 +227,7 @@ void AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
|
||||
source.kind == fir::AliasAnalysis::SourceKind::Argument) {
|
||||
LLVM_DEBUG(llvm::dbgs().indent(2)
|
||||
<< "Found reference to dummy argument at " << *op << "\n");
|
||||
std::string name = getFuncArgName(source.origin.u.get<mlir::Value>());
|
||||
std::string name = getFuncArgName(llvm::cast<mlir::Value>(source.origin.u));
|
||||
if (!name.empty())
|
||||
tag = state.getFuncTreeWithScope(func, scopeOp)
|
||||
.dummyArgDataTree.getTag(name);
|
||||
@@ -240,7 +240,7 @@ void AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
|
||||
} else if (enableGlobals &&
|
||||
source.kind == fir::AliasAnalysis::SourceKind::Global &&
|
||||
!source.isBoxData()) {
|
||||
mlir::SymbolRefAttr glbl = source.origin.u.get<mlir::SymbolRefAttr>();
|
||||
mlir::SymbolRefAttr glbl = llvm::cast<mlir::SymbolRefAttr>(source.origin.u);
|
||||
const char *name = glbl.getRootReference().data();
|
||||
LLVM_DEBUG(llvm::dbgs().indent(2) << "Found reference to global " << name
|
||||
<< " at " << *op << "\n");
|
||||
@@ -250,8 +250,7 @@ void AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
|
||||
} else if (enableDirect &&
|
||||
source.kind == fir::AliasAnalysis::SourceKind::Global &&
|
||||
source.isBoxData()) {
|
||||
if (source.origin.u.is<mlir::SymbolRefAttr>()) {
|
||||
mlir::SymbolRefAttr glbl = source.origin.u.get<mlir::SymbolRefAttr>();
|
||||
if (auto glbl = llvm::dyn_cast<mlir::SymbolRefAttr>(source.origin.u)) {
|
||||
const char *name = glbl.getRootReference().data();
|
||||
LLVM_DEBUG(llvm::dbgs().indent(2) << "Found reference to direct " << name
|
||||
<< " at " << *op << "\n");
|
||||
@@ -269,7 +268,7 @@ void AddAliasTagsPass::runOnAliasInterface(fir::FirAliasTagOpInterface op,
|
||||
source.kind == fir::AliasAnalysis::SourceKind::Allocate) {
|
||||
std::optional<llvm::StringRef> name;
|
||||
mlir::Operation *sourceOp =
|
||||
source.origin.u.get<mlir::Value>().getDefiningOp();
|
||||
llvm::cast<mlir::Value>(source.origin.u).getDefiningOp();
|
||||
if (auto alloc = mlir::dyn_cast_or_null<fir::AllocaOp>(sourceOp))
|
||||
name = alloc.getUniqName();
|
||||
else if (auto alloc = mlir::dyn_cast_or_null<fir::AllocMemOp>(sourceOp))
|
||||
|
||||
@@ -76,8 +76,9 @@ class InsertionPoint {
|
||||
/// Get contained pointer type or nullptr
|
||||
template <class T>
|
||||
T *tryGetPtr() const {
|
||||
if (location.is<T *>())
|
||||
return location.get<T *>();
|
||||
// Use llvm::dyn_cast_if_present because location may be null here.
|
||||
if (T *ptr = llvm::dyn_cast_if_present<T *>(location))
|
||||
return ptr;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user