Lines Matching defs:associate
371 /// The current hlfir.associate lowering does not handle multiple uses of a
386 // hlfir.associate/end_associate, then conservatively assume
411 // safe for hlfir.associate. These operations might read from the box and
447 matchAndRewrite(hlfir::AssociateOp associate, OpAdaptor adaptor,
449 mlir::Location loc = associate->getLoc();
450 fir::FirOpBuilder builder(rewriter, associate.getOperation());
455 [](hlfir::AssociateOp associate) -> mlir::Operation * {
456 for (mlir::Operation *useOp : associate->getUsers())
469 // %1:3 = hlfir.associate %0 {adapt.valuebyref} :
497 mlir::Type associateHlfirVarType = associate.getResultTypes()[0];
499 associate.getResult(0).replaceAllUsesWith(hlfirVar);
501 mlir::Type associateFirVarType = associate.getResultTypes()[1];
503 associate.getResult(1).replaceAllUsesWith(firVar);
504 associate.getResult(2).replaceAllUsesWith(flag);
516 rewriter.eraseOp(associate);
529 associate.getSource(), associate.getOperation(),
530 getEndAssociate(associate))) {
538 eraseAllUsesInDestroys(associate.getSource(), rewriter);
542 associate.getSource().getDefiningOp()))
548 if (associate->hasAttr(fir::getAdaptToByRefAttrName())) {
552 if (associate.getUniqName())
553 name = *associate.getUniqName();