//===- DeltaManager.cpp - Runs Delta Passes to reduce Input ---------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file calls each specialized Delta pass in order to reduce the input IR
// file.
//
//===----------------------------------------------------------------------===//

#include "DeltaManager.h"
#include "TestRunner.h"
#include "deltas/Delta.h"
#include "deltas/ReduceAliases.h"
#include "deltas/ReduceArguments.h"
#include "deltas/ReduceAttributes.h"
#include "deltas/ReduceBasicBlocks.h"
#include "deltas/ReduceFunctionBodies.h"
#include "deltas/ReduceFunctions.h"
#include "deltas/ReduceGlobalValues.h"
#include "deltas/ReduceGlobalVarInitializers.h"
#include "deltas/ReduceGlobalVars.h"
#include "deltas/ReduceInstructions.h"
#include "deltas/ReduceMetadata.h"
#include "deltas/ReduceModuleInlineAsm.h"
#include "deltas/ReduceOperandBundles.h"
#include "deltas/ReduceSpecialGlobals.h"

namespace llvm {

// TODO: Add CLI option to run only specified Passes (for unit tests)
void runDeltaPasses(TestRunner &Tester) {
  reduceSpecialGlobalsDeltaPass(Tester);
  reduceAliasesDeltaPass(Tester);
  reduceFunctionBodiesDeltaPass(Tester);
  reduceFunctionsDeltaPass(Tester);
  reduceBasicBlocksDeltaPass(Tester);
  reduceGlobalValuesDeltaPass(Tester);
  reduceGlobalsInitializersDeltaPass(Tester);
  reduceGlobalsDeltaPass(Tester);
  reduceMetadataDeltaPass(Tester);
  reduceArgumentsDeltaPass(Tester);
  reduceInstructionsDeltaPass(Tester);
  reduceOperandBundesDeltaPass(Tester);
  reduceAttributesDeltaPass(Tester);
  reduceModuleInlineAsmDeltaPass(Tester);
  // TODO: Implement the remaining Delta Passes
}
} // namespace llvm
