MLIR 22.0.0git
QuerySession.h
Go to the documentation of this file.
1//===--- QuerySession.h -----------------------------------------*- C++ -*-===//
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#ifndef MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H
10#define MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H
11
12#include "mlir/IR/Operation.h"
14#include "llvm/ADT/StringMap.h"
15#include "llvm/Support/SourceMgr.h"
16
17namespace mlir::query {
18
19class Registry;
20// Represents the state for a particular mlir-query session.
22public:
23 QuerySession(Operation *rootOp, llvm::SourceMgr &sourceMgr, unsigned bufferId,
24 const matcher::Registry &matcherRegistry)
25 : rootOp(rootOp), sourceMgr(sourceMgr), bufferId(bufferId),
26 matcherRegistry(matcherRegistry) {}
27
28 Operation *getRootOp() { return rootOp; }
29 llvm::SourceMgr &getSourceManager() const { return sourceMgr; }
30 unsigned getBufferId() { return bufferId; }
31 const matcher::Registry &getRegistryData() const { return matcherRegistry; }
32
33 llvm::StringMap<matcher::VariantValue> namedValues;
34 bool terminate = false;
35
36private:
37 Operation *rootOp;
38 llvm::SourceMgr &sourceMgr;
39 unsigned bufferId;
40 const matcher::Registry &matcherRegistry;
41};
42
43} // namespace mlir::query
44
45#endif // MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H
Operation is the basic unit of execution within MLIR.
Definition Operation.h:88
const matcher::Registry & getRegistryData() const
QuerySession(Operation *rootOp, llvm::SourceMgr &sourceMgr, unsigned bufferId, const matcher::Registry &matcherRegistry)
llvm::StringMap< matcher::VariantValue > namedValues
llvm::SourceMgr & getSourceManager() const