diff --git a/mlir/include/mlir/Transforms/RegionUtils.h b/mlir/include/mlir/Transforms/RegionUtils.h --- a/mlir/include/mlir/Transforms/RegionUtils.h +++ b/mlir/include/mlir/Transforms/RegionUtils.h @@ -59,6 +59,16 @@ LogicalResult simplifyRegions(RewriterBase &rewriter, MutableArrayRef regions); +/// Erase the unreachable blocks within the provided regions. Returns success +/// if any blocks were erased, failure otherwise. +LogicalResult eraseUnreachableBlocks(RewriterBase &rewriter, + MutableArrayRef regions); + +/// This function returns success if any operations or arguments were deleted, +/// failure otherwise. +LogicalResult runRegionDCE(RewriterBase &rewriter, + MutableArrayRef regions); + } // namespace mlir #endif // MLIR_TRANSFORMS_REGIONUTILS_H_ diff --git a/mlir/lib/Transforms/Utils/RegionUtils.cpp b/mlir/lib/Transforms/Utils/RegionUtils.cpp --- a/mlir/lib/Transforms/Utils/RegionUtils.cpp +++ b/mlir/lib/Transforms/Utils/RegionUtils.cpp @@ -76,8 +76,8 @@ /// Erase the unreachable blocks within the provided regions. Returns success /// if any blocks were erased, failure otherwise. // TODO: We could likely merge this with the DCE algorithm below. -static LogicalResult eraseUnreachableBlocks(RewriterBase &rewriter, - MutableArrayRef regions) { +LogicalResult mlir::eraseUnreachableBlocks(RewriterBase &rewriter, + MutableArrayRef regions) { // Set of blocks found to be reachable within a given region. llvm::df_iterator_default_set reachable; // If any blocks were found to be dead. @@ -364,8 +364,8 @@ // // This function returns success if any operations or arguments were deleted, // failure otherwise. -static LogicalResult runRegionDCE(RewriterBase &rewriter, - MutableArrayRef regions) { +LogicalResult mlir::runRegionDCE(RewriterBase &rewriter, + MutableArrayRef regions) { LiveMap liveMap; do { liveMap.resetChanged();