Create Reduction Tree Pass
[lldb.git] / mlir / tools / mlir-reduce / ReductionTreePass.cpp
1 //===- ReductionTreePass.cpp - Reduction Tree Pass Implementation ---------===//
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 // This file defines the Reduction Tree Pass. It provides a framework for
10 // the implementation of different reduction passes in the MLIR Reduce tool. It
11 // allows for custom specification of the variant generation behavior. It
12 // implements methods that define the different possible traversals of the
13 // reduction tree.
14 //
15 //===----------------------------------------------------------------------===//
16
17 #include "mlir/Reducer/ReductionTreePass.h"
18
19 using namespace mlir;
20
21 /// Update the golden module's content with that of the reduced module.
22 void ReductionTreeUtils::updateGoldenModule(ModuleOp &golden,
23                                             ModuleOp reduced) {
24   golden.getBody()->clear();
25
26   golden.getBody()->getOperations().splice(golden.getBody()->begin(),
27                                            reduced.getBody()->getOperations());
28 }