MLIR  20.0.0git
DecomposeCallGraphTypes.h
Go to the documentation of this file.
1 //===- DecomposeCallGraphTypes.h - CG type decompositions -------*- 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 // Conversion patterns for decomposing types along call graph edges. That is,
10 // decomposing types for calls, returns, and function args.
11 //
12 // TODO: Make this handle dialect-defined functions, calls, and returns.
13 // Currently, the generic interfaces aren't sophisticated enough for the
14 // types of mutations that we are doing here.
15 //
16 //===----------------------------------------------------------------------===//
17 
18 #ifndef MLIR_DIALECT_FUNC_TRANSFORMS_DECOMPOSECALLGRAPHTYPES_H
19 #define MLIR_DIALECT_FUNC_TRANSFORMS_DECOMPOSECALLGRAPHTYPES_H
20 
22 #include <optional>
23 
24 namespace mlir {
25 
26 /// Populates the patterns needed to drive the conversion process for
27 /// decomposing call graph types with the given `TypeConverter`.
28 void populateDecomposeCallGraphTypesPatterns(MLIRContext *context,
29  const TypeConverter &typeConverter,
30  RewritePatternSet &patterns);
31 
32 } // namespace mlir
33 
34 #endif // MLIR_DIALECT_FUNC_TRANSFORMS_DECOMPOSECALLGRAPHTYPES_H
Include the generated interface declarations.
void populateDecomposeCallGraphTypesPatterns(MLIRContext *context, const TypeConverter &typeConverter, RewritePatternSet &patterns)
Populates the patterns needed to drive the conversion process for decomposing call graph types with t...