//===- RegionKindInterface.cpp - Region Kind Interfaces ---------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains the definitions of the region kind interfaces defined in // `RegionKindInterface.td`. // //===----------------------------------------------------------------------===// #include "mlir/IR/RegionKindInterface.h" using namespace mlir; #include "mlir/IR/RegionKindInterface.cpp.inc" bool mlir::mayHaveSSADominance(Region ®ion) { auto regionKindOp = dyn_cast(region.getParentOp()); if (!regionKindOp) return true; return regionKindOp.hasSSADominance(region.getRegionNumber()); } bool mlir::mayBeGraphRegion(Region ®ion) { if (!region.getParentOp()->isRegistered()) return true; auto regionKindOp = dyn_cast(region.getParentOp()); if (!regionKindOp) return false; return !regionKindOp.hasSSADominance(region.getRegionNumber()); }