mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "mlir/Pass/Pass.h"
|
|
|
|
#include "revng/Clift/Clift.h"
|
|
#include "revng/Support/CTarget.h"
|
|
|
|
namespace mlir::clift {
|
|
|
|
template<typename OpT>
|
|
using PassPtr = std::unique_ptr<mlir::OperationPass<OpT>>;
|
|
|
|
#define GEN_PASS_DECL
|
|
#include "revng/CliftTransforms/Passes.h.inc"
|
|
|
|
PassPtr<clift::FunctionOp> createTrivialReturnEliminationPass();
|
|
|
|
PassPtr<clift::FunctionOp> createLabelMergingPass();
|
|
PassPtr<clift::FunctionOp> createLoopDetectionPass();
|
|
|
|
PassPtr<clift::FunctionOp> createOptimizeStatementsPass();
|
|
PassPtr<clift::FunctionOp> createOptimizeExpressionsPass();
|
|
|
|
PassPtr<clift::FunctionOp> createTerminalBranchComplementHoistingPass();
|
|
|
|
PassPtr<clift::FunctionOp>
|
|
createCLegalizationPass(const TargetCImplementation &Target);
|
|
|
|
PassPtr<clift::FunctionOp> createImmediateRadixDeductionPass();
|
|
|
|
PassPtr<mlir::ModuleOp> createVerifyCPass();
|
|
PassPtr<mlir::ModuleOp> createEmitCPass();
|
|
|
|
#define GEN_PASS_REGISTRATION
|
|
#include "revng/CliftTransforms/Passes.h.inc"
|
|
|
|
} // namespace mlir::clift
|