1 //===- DeltaManager.h - Runs Delta Passes to reduce Input -----------------===//
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 calls each specialized Delta pass in order to reduce the input IR
10 // file.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #include "TestRunner.h"
15 #include "deltas/Delta.h"
16 #include "deltas/ReduceAliases.h"
17 #include "deltas/ReduceArguments.h"
18 #include "deltas/ReduceAttributes.h"
19 #include "deltas/ReduceBasicBlocks.h"
20 #include "deltas/ReduceFunctionBodies.h"
21 #include "deltas/ReduceFunctions.h"
22 #include "deltas/ReduceGlobalVars.h"
23 #include "deltas/ReduceInstructions.h"
24 #include "deltas/ReduceMetadata.h"
25 #include "deltas/ReduceOperandBundles.h"
26 #include "deltas/ReduceSpecialGlobals.h"
27 
28 namespace llvm {
29 
30 // TODO: Add CLI option to run only specified Passes (for unit tests)
runDeltaPasses(TestRunner & Tester)31 inline void runDeltaPasses(TestRunner &Tester) {
32   reduceSpecialGlobalsDeltaPass(Tester);
33   reduceAliasesDeltaPass(Tester);
34   reduceFunctionBodiesDeltaPass(Tester);
35   reduceFunctionsDeltaPass(Tester);
36   reduceBasicBlocksDeltaPass(Tester);
37   reduceGlobalsDeltaPass(Tester);
38   reduceMetadataDeltaPass(Tester);
39   reduceArgumentsDeltaPass(Tester);
40   reduceInstructionsDeltaPass(Tester);
41   reduceOperandBundesDeltaPass(Tester);
42   reduceAttributesDeltaPass(Tester);
43   // TODO: Implement the remaining Delta Passes
44 }
45 
46 } // namespace llvm
47