xref: /llvm-project/mlir/lib/Analysis/CFGLoopInfo.cpp (revision 33550b43f49a4e5b20e748936278e55f67e4b929)
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 Ulmann CFGLoop::CFGLoop(mlir::Block *block)
201ef51e04SChristian Ulmann     : llvm::LoopBase<mlir::Block, CFGLoop>(block) {}
211ef51e04SChristian Ulmann 
CFGLoopInfo(const llvm::DominatorTreeBase<mlir::Block,false> & domTree)221ef51e04SChristian Ulmann CFGLoopInfo::CFGLoopInfo(
231ef51e04SChristian Ulmann     const llvm::DominatorTreeBase<mlir::Block, false> &domTree) {
241ef51e04SChristian Ulmann   analyze(domTree);
251ef51e04SChristian Ulmann }
26