MLIR 24.0.0git
Transforms.h
Go to the documentation of this file.
1//===- Transforms.h - EmitC transformations as patterns --------*- 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_DIALECT_EMITC_TRANSFORMS_TRANSFORMS_H
10#define MLIR_DIALECT_EMITC_TRANSFORMS_TRANSFORMS_H
11
14#include "llvm/ADT/DenseMap.h"
15#include "llvm/ADT/StringRef.h"
16
17namespace mlir {
18namespace emitc {
19
20//===----------------------------------------------------------------------===//
21// Expression transforms
22//===----------------------------------------------------------------------===//
23
24ExpressionOp createExpression(Operation *op, OpBuilder &builder);
25
26//===----------------------------------------------------------------------===//
27// Populate functions
28//===----------------------------------------------------------------------===//
29
30/// Populates `patterns` with expression-related patterns.
31void populateExpressionPatterns(RewritePatternSet &patterns);
32
33//===----------------------------------------------------------------------===//
34// The WrapFuncInClass pass.
35//===----------------------------------------------------------------------===//
36
38 RewritePatternSet &patterns, StringRef funcName, StringRef classNameFormat,
39 DenseMap<FuncOp, llvm::DenseSet<GlobalOp>> &globalsToMove);
40
41//===----------------------------------------------------------------------===//
42// The AddReflectionMap pass.
43//===----------------------------------------------------------------------===//
44
46 RewritePatternSet &patterns, ArrayRef<std::string> includedFieldAttrs);
47
48} // namespace emitc
49} // namespace mlir
50
51#endif // MLIR_DIALECT_EMITC_TRANSFORMS_TRANSFORMS_H
void populateExpressionPatterns(RewritePatternSet &patterns)
Populates patterns with expression-related patterns.
void populateMLGOAddReflectionMapPatterns(RewritePatternSet &patterns, ArrayRef< std::string > includedFieldAttrs)
void populateWrapFuncInClass(RewritePatternSet &patterns, StringRef funcName, StringRef classNameFormat, DenseMap< FuncOp, llvm::DenseSet< GlobalOp > > &globalsToMove)
ExpressionOp createExpression(Operation *op, OpBuilder &builder)
Include the generated interface declarations.
llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT > DenseMap
Definition LLVM.h:120