1//===- CFGLoopInfo.cpp - LoopInfo analysis for region bodies --------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "mlir/Analysis/CFGLoopInfo.h"
10#include "llvm/Support/GenericLoopInfoImpl.h"
11
12// Explicitly instantiate the LoopBase and LoopInfoBase classes defined in
13// LoopInfoImpl.h for CFGLoops
14template class llvm::LoopBase<mlir::Block, mlir::CFGLoop>;
15template class llvm::LoopInfoBase<mlir::Block, mlir::CFGLoop>;
16
17using namespace mlir;
18
19CFGLoop::CFGLoop(mlir::Block *block)
20 : llvm::LoopBase<mlir::Block, CFGLoop>(block) {}
21
22CFGLoopInfo::CFGLoopInfo(
23 const llvm::DominatorTreeBase<mlir::Block, false> &domTree) {
24 analyze(DomTree: domTree);
25}
26
27raw_ostream &mlir::operator<<(raw_ostream &os, mlir::Block &block) {
28 block.print(os);
29 return os;
30}
31

source code of mlir/lib/Analysis/CFGLoopInfo.cpp