162828865SStephen Neuendorffer //===- RegionKindInterface.cpp - Region Kind Interfaces ---------*- C++ -*-===// 262828865SStephen Neuendorffer // 362828865SStephen Neuendorffer // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 462828865SStephen Neuendorffer // See https://llvm.org/LICENSE.txt for license information. 562828865SStephen Neuendorffer // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 662828865SStephen Neuendorffer // 762828865SStephen Neuendorffer //===----------------------------------------------------------------------===// 862828865SStephen Neuendorffer // 962828865SStephen Neuendorffer // This file contains the definitions of the region kind interfaces defined in 1062828865SStephen Neuendorffer // `RegionKindInterface.td`. 1162828865SStephen Neuendorffer // 1262828865SStephen Neuendorffer //===----------------------------------------------------------------------===// 1362828865SStephen Neuendorffer 1462828865SStephen Neuendorffer #include "mlir/IR/RegionKindInterface.h" 1562828865SStephen Neuendorffer 1662828865SStephen Neuendorffer using namespace mlir; 1762828865SStephen Neuendorffer 1862828865SStephen Neuendorffer #include "mlir/IR/RegionKindInterface.cpp.inc" 19b884f4efSMatthias Springer mayHaveSSADominance(Region & region)20b884f4efSMatthias Springerbool mlir::mayHaveSSADominance(Region ®ion) { 21*695a5a6aSMatthias Springer auto regionKindOp = dyn_cast<RegionKindInterface>(region.getParentOp()); 22b884f4efSMatthias Springer if (!regionKindOp) 23b884f4efSMatthias Springer return true; 24b884f4efSMatthias Springer return regionKindOp.hasSSADominance(region.getRegionNumber()); 25b884f4efSMatthias Springer } 26*695a5a6aSMatthias Springer mayBeGraphRegion(Region & region)27*695a5a6aSMatthias Springerbool mlir::mayBeGraphRegion(Region ®ion) { 28*695a5a6aSMatthias Springer if (!region.getParentOp()->isRegistered()) 29*695a5a6aSMatthias Springer return true; 30*695a5a6aSMatthias Springer auto regionKindOp = dyn_cast<RegionKindInterface>(region.getParentOp()); 31*695a5a6aSMatthias Springer if (!regionKindOp) 32*695a5a6aSMatthias Springer return false; 33*695a5a6aSMatthias Springer return !regionKindOp.hasSSADominance(region.getRegionNumber()); 34*695a5a6aSMatthias Springer } 35