The patch adds operations to BlockAndValueMapping and renames it to IRMapping. When operations are cloned, old operations are mapped to the cloned operations. This allows mapping from an operation to a cloned operation. Example:
Operation *opWithRegion = ... Operation *opInsideRegion = &opWithRegion->front().front(); IRMapping map Operation *newOpWithRegion = opWithRegion->clone(map); Operation *newOpInsideRegion = map.lookupOrNull(opInsideRegion);
Migration instructions:
All includes to mlir/IR/BlockAndValueMapping.h should be replaced with mlir/IR/IRMapping.h. All uses of BlockAndValueMapping need to be renamed to IRMapping.