11ef51e04SChristian Ulmann //===- CFGLoopInfo.cpp - LoopInfo analysis for region bodies --------------===// 21ef51e04SChristian Ulmann // 31ef51e04SChristian Ulmann // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 41ef51e04SChristian Ulmann // See https://llvm.org/LICENSE.txt for license information. 51ef51e04SChristian Ulmann // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 61ef51e04SChristian Ulmann // 71ef51e04SChristian Ulmann //===----------------------------------------------------------------------===// 81ef51e04SChristian Ulmann 91ef51e04SChristian Ulmann #include "mlir/Analysis/CFGLoopInfo.h" 10*f5425c12SChristian Ulmann #include "llvm/Support/GenericLoopInfoImpl.h" 11d8f3c507SChristian Ulmann 12d8f3c507SChristian Ulmann // Explicitly instantiate the LoopBase and LoopInfoBase classes defined in 13d8f3c507SChristian Ulmann // LoopInfoImpl.h for CFGLoops 14d8f3c507SChristian Ulmann template class llvm::LoopBase<mlir::Block, mlir::CFGLoop>; 15d8f3c507SChristian Ulmann template class llvm::LoopInfoBase<mlir::Block, mlir::CFGLoop>; 161ef51e04SChristian Ulmann 171ef51e04SChristian Ulmann using namespace mlir; 181ef51e04SChristian Ulmann CFGLoop(mlir::Block * block)191ef51e04SChristian UlmannCFGLoop::CFGLoop(mlir::Block *block) 201ef51e04SChristian Ulmann : llvm::LoopBase<mlir::Block, CFGLoop>(block) {} 211ef51e04SChristian Ulmann CFGLoopInfo(const llvm::DominatorTreeBase<mlir::Block,false> & domTree)221ef51e04SChristian UlmannCFGLoopInfo::CFGLoopInfo( 231ef51e04SChristian Ulmann const llvm::DominatorTreeBase<mlir::Block, false> &domTree) { 241ef51e04SChristian Ulmann analyze(domTree); 251ef51e04SChristian Ulmann } 26