xref: /aosp_15_r20/external/tensorflow/tensorflow/compiler/mlir/tfrt/transforms/lmhlo_to_gpu/lmhlo_to_jitrt.h (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1 // Copyright 2022 The TensorFlow Runtime Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TENSORFLOW_COMPILER_MLIR_TFRT_TRANSFORMS_LMHLO_TO_GPU_LMHLO_TO_JITRT_H_
16 #define TENSORFLOW_COMPILER_MLIR_TFRT_TRANSFORMS_LMHLO_TO_GPU_LMHLO_TO_JITRT_H_
17 
18 #include <memory>
19 
20 #include "mlir/Dialect/Func/IR/FuncOps.h"
21 #include "mlir/IR/BuiltinOps.h"
22 #include "mlir/Pass/Pass.h"
23 #include "tensorflow/compiler/mlir/tfrt/transforms/lmhlo_to_gpu/lmhlo_to_gpu_binary.h"
24 
25 namespace tensorflow {
26 
27 std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
28 createConvertGpuBinaryToJitRtPass();
29 
30 std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
31 createConvertLmhloGpuToJitRtPass();
32 
33 void registerLmhloToJitRtPasses();
34 
35 // Passes to lower from the lmhlo to the JitRt compatible program.
36 void populateLmhloToJitRtPasses(
37     mlir::OpPassManager &pm,
38     GpuBinaryOptions options = GpuBinaryOptions::DefaultGpuBinaryOptions());
39 
40 }  // namespace tensorflow
41 
42 #endif  // TENSORFLOW_COMPILER_MLIR_TFRT_TRANSFORMS_LMHLO_TO_GPU_LMHLO_TO_JITRT_H_
43