@@ -477,7 +477,7 @@ static std::string getVarNameFromValue(mlir::Value v) {
477477 if (auto allocaOp = dyn_cast<AllocaOp>(srcOp))
478478 return allocaOp.getName ().str ();
479479 if (auto getElemOp = dyn_cast<GetMemberOp>(srcOp)) {
480- auto parent = dyn_cast<AllocaOp>( getElemOp.getAddr ().getDefiningOp () );
480+ auto parent = getElemOp.getAddr ().getDefiningOp <cir::AllocaOp>( );
481481 if (parent) {
482482 llvm::SmallString<128 > finalName;
483483 llvm::raw_svector_ostream Out (finalName);
@@ -760,9 +760,9 @@ void LifetimeCheckPass::checkReturn(ReturnOp retOp) {
760760
761761 // The return value is loaded from the return slot before
762762 // returning.
763- auto loadOp = dyn_cast<LoadOp>( retOp.getOperand (0 ).getDefiningOp () );
763+ auto loadOp = retOp.getOperand (0 ).getDefiningOp <cir::LoadOp>( );
764764 assert (loadOp && " expected cir.load" );
765- if (!isa<AllocaOp>( loadOp.getAddr ().getDefiningOp () ))
765+ if (!loadOp.getAddr ().getDefiningOp <cir::AllocaOp>( ))
766766 return ;
767767
768768 // Keep track of interesting lambda.
@@ -1083,10 +1083,10 @@ void LifetimeCheckPass::checkCoroTaskStore(StoreOp storeOp) {
10831083 // Bind values that are coming from alloca's (like %arg0 above) to the
10841084 // pset of %task - this effectively leads to some invalidation of %task
10851085 // when %arg0 finishes its lifetime at the end of the enclosing cir.scope.
1086- if (auto call = dyn_cast <cir::CallOp>(taskTmp. getDefiningOp () )) {
1086+ if (auto call = taskTmp. getDefiningOp <cir::CallOp>()) {
10871087 bool potentialTaintedTask = false ;
10881088 for (auto arg : call.getArgOperands ()) {
1089- auto alloca = dyn_cast <cir::AllocaOp>(arg. getDefiningOp () );
1089+ auto alloca = arg. getDefiningOp <cir::AllocaOp>();
10901090 if (alloca && currScope->localValues .count (alloca)) {
10911091 getPmap ()[taskAddr].insert (State::getLocalValue (alloca));
10921092 potentialTaintedTask = true ;
@@ -1103,11 +1103,11 @@ void LifetimeCheckPass::checkCoroTaskStore(StoreOp storeOp) {
11031103}
11041104
11051105mlir::Value LifetimeCheckPass::getLambdaFromMemberAccess (mlir::Value addr) {
1106- auto op = addr.getDefiningOp ();
11071106 // FIXME: we likely want to consider more indirections here...
1108- if (!isa<cir::GetMemberOp>(op))
1107+ auto op = addr.getDefiningOp <cir::GetMemberOp>();
1108+ if (!op)
11091109 return nullptr ;
1110- auto allocaOp = dyn_cast<cir::AllocaOp>( op->getOperand (0 ).getDefiningOp () );
1110+ auto allocaOp = op->getOperand (0 ).getDefiningOp <cir::AllocaOp>( );
11111111 if (!allocaOp || !isLambdaType (allocaOp.getAllocaType ()))
11121112 return nullptr ;
11131113 return allocaOp;
@@ -1117,7 +1117,7 @@ void LifetimeCheckPass::checkLambdaCaptureStore(StoreOp storeOp) {
11171117 auto localByRefAddr = storeOp.getValue ();
11181118 auto lambdaCaptureAddr = storeOp.getAddr ();
11191119
1120- if (!isa_and_nonnull <cir::AllocaOp>(localByRefAddr. getDefiningOp () ))
1120+ if (!localByRefAddr. getDefiningOp <cir::AllocaOp>())
11211121 return ;
11221122 auto lambdaAddr = getLambdaFromMemberAccess (lambdaCaptureAddr);
11231123 if (!lambdaAddr)
@@ -1178,7 +1178,7 @@ void LifetimeCheckPass::updatePointsTo(mlir::Value addr, mlir::Value data,
11781178 mlir::Location loc) {
11791179
11801180 auto getArrayFromSubscript = [&](PtrStrideOp strideOp) -> mlir::Value {
1181- auto castOp = dyn_cast<CastOp>( strideOp.getBase ().getDefiningOp () );
1181+ auto castOp = strideOp.getBase ().getDefiningOp <cir::CastOp>( );
11821182 if (!castOp)
11831183 return {};
11841184 if (castOp.getKind () != cir::CastKind::array_to_ptrdecay)
@@ -1284,11 +1284,11 @@ void LifetimeCheckPass::checkStore(StoreOp storeOp) {
12841284 // Decompose store's to aggregates into multiple updates to individual fields.
12851285 if (aggregates.count (addr)) {
12861286 auto data = storeOp.getValue ();
1287- auto dataSrcOp = data.getDefiningOp ();
1288- // Only interested in updating and tracking fields, anything besides
1289- // constants isn't really relevant.
1290- if (dataSrcOp && isa<ConstantOp>(dataSrcOp))
1287+ if (data.getDefiningOp <cir::ConstantOp>()) {
1288+ // Only interested in updating and tracking fields, anything besides
1289+ // constants isn't really relevant.
12911290 updatePointsTo (addr, data, data.getLoc ());
1291+ }
12921292 return ;
12931293 }
12941294
@@ -1343,7 +1343,7 @@ void LifetimeCheckPass::emitInvalidHistory(mlir::InFlightDiagnostic &D,
13431343 case InvalidStyle::EndOfScope: {
13441344 if (tasks.count (histKey)) {
13451345 llvm::StringRef resource = " resource" ;
1346- if (auto allocaOp = dyn_cast<AllocaOp>( info.val ->getDefiningOp () )) {
1346+ if (auto allocaOp = info.val ->getDefiningOp <cir::AllocaOp>( )) {
13471347 if (isLambdaType (allocaOp.getAllocaType ()))
13481348 resource = " lambda" ;
13491349 }
@@ -1419,7 +1419,7 @@ void LifetimeCheckPass::checkPointerDeref(mlir::Value addr, mlir::Location loc,
14191419 D << " returned lambda captures local variable" ;
14201420 else if (derefStyle == DerefStyle::CallParam ||
14211421 derefStyle == DerefStyle::IndirectCallParam) {
1422- bool isAgg = isa_and_nonnull< GetMemberOp>(addr. getDefiningOp () );
1422+ bool isAgg = addr. getDefiningOp <cir:: GetMemberOp>();
14231423 D << " passing " ;
14241424 if (!isAgg)
14251425 D << " invalid pointer" ;
@@ -1464,7 +1464,7 @@ mlir::Value LifetimeCheckPass::getThisParamPointerCategory(CallOp callOp) {
14641464 auto thisptr = callOp.getArgOperand (0 );
14651465 if (ptrs.count (thisptr))
14661466 return thisptr;
1467- if (auto loadOp = dyn_cast_or_null< LoadOp>(thisptr. getDefiningOp () )) {
1467+ if (auto loadOp = thisptr. getDefiningOp <cir:: LoadOp>()) {
14681468 if (ptrs.count (loadOp.getAddr ()))
14691469 return loadOp.getAddr ();
14701470 }
@@ -1476,7 +1476,7 @@ mlir::Value LifetimeCheckPass::getThisParamOwnerCategory(CallOp callOp) {
14761476 auto thisptr = callOp.getArgOperand (0 );
14771477 if (owners.count (thisptr))
14781478 return thisptr;
1479- if (auto loadOp = dyn_cast_or_null< LoadOp>(thisptr. getDefiningOp () )) {
1479+ if (auto loadOp = thisptr. getDefiningOp <cir:: LoadOp>()) {
14801480 if (owners.count (loadOp.getAddr ()))
14811481 return loadOp.getAddr ();
14821482 }
@@ -1580,7 +1580,7 @@ void LifetimeCheckPass::checkCtor(CallOp callOp, cir::CXXCtorAttr ctor) {
15801580
15811581 // Not interested in block/function arguments or any indirect
15821582 // provided alloca address.
1583- if (!dyn_cast_or_null< AllocaOp>(addr. getDefiningOp () ))
1583+ if (!addr. getDefiningOp <cir:: AllocaOp>())
15841584 return ;
15851585
15861586 markPsetNull (addr, callOp.getLoc ());
0 commit comments