1 //===- DeltaManager.cpp - 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 "DeltaManager.h"
15 #include "TestRunner.h"
16 #include "deltas/Delta.h"
17 #include "deltas/ReduceAliases.h"
18 #include "deltas/ReduceArguments.h"
19 #include "deltas/ReduceAttributes.h"
20 #include "deltas/ReduceBasicBlocks.h"
21 #include "deltas/ReduceFunctionBodies.h"
22 #include "deltas/ReduceFunctions.h"
23 #include "deltas/ReduceGlobalValues.h"
24 #include "deltas/ReduceGlobalVarInitializers.h"
25 #include "deltas/ReduceGlobalVars.h"
26 #include "deltas/ReduceInstructions.h"
27 #include "deltas/ReduceMetadata.h"
28 #include "deltas/ReduceModuleInlineAsm.h"
29 #include "deltas/ReduceOperandBundles.h"
30 #include "deltas/ReduceSpecialGlobals.h"
31 
32 namespace llvm {
33 
34 // TODO: Add CLI option to run only specified Passes (for unit tests)
35 void runDeltaPasses(TestRunner &Tester) {
36   reduceSpecialGlobalsDeltaPass(Tester);
37   reduceAliasesDeltaPass(Tester);
38   reduceFunctionBodiesDeltaPass(Tester);
39   reduceFunctionsDeltaPass(Tester);
40   reduceBasicBlocksDeltaPass(Tester);
41   reduceGlobalValuesDeltaPass(Tester);
42   reduceGlobalsInitializersDeltaPass(Tester);
43   reduceGlobalsDeltaPass(Tester);
44   reduceMetadataDeltaPass(Tester);
45   reduceArgumentsDeltaPass(Tester);
46   reduceInstructionsDeltaPass(Tester);
47   reduceOperandBundesDeltaPass(Tester);
48   reduceAttributesDeltaPass(Tester);
49   reduceModuleInlineAsmDeltaPass(Tester);
50   // TODO: Implement the remaining Delta Passes
51 }
52 } // namespace llvm
53