clang 24.0.0git
Passes.h
Go to the documentation of this file.
1//===- Passes.h - CIR pass entry points -------------------------*- C++ -*-===//
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 header file defines prototypes that expose pass constructors.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef CLANG_CIR_DIALECT_PASSES_H
14#define CLANG_CIR_DIALECT_PASSES_H
15
16#include "mlir/Pass/Pass.h"
17#include "llvm/ABI/TargetInfo.h"
18
19namespace cir {
20/// The ABI target whose calling-convention rules drive CallConvLowering.
21/// None is the unset state used when the pass runs in classification-attr
22/// mode instead of selecting a target.
24} // namespace cir
25
26namespace mlir {
27
28std::unique_ptr<Pass> createCIRCanonicalizePass();
29std::unique_ptr<Pass> createCIRFlattenCFGPass();
30std::unique_ptr<Pass> createCIRSimplifyPass();
31std::unique_ptr<Pass> createCIREHABILoweringPass();
32std::unique_ptr<Pass> createCXXABILoweringPass();
33std::unique_ptr<Pass> createTargetLoweringPass();
34std::unique_ptr<Pass> createCallConvLoweringPass();
35std::unique_ptr<Pass>
37 llvm::abi::X86AVXABILevel x86AvxAbiLevel,
38 bool allowsX86TargetAttrAvx,
39 const llvm::abi::X86ABICompatInfo &x86AbiCompat);
40std::unique_ptr<Pass> createHoistAllocasPass();
41std::unique_ptr<Pass> createLoweringPreparePass();
42std::unique_ptr<Pass> createGotoSolverPass();
43std::unique_ptr<Pass> createIdiomRecognizerPass();
44std::unique_ptr<Pass> createLibOptPass();
45
46void populateCIRPreLoweringPasses(mlir::OpPassManager &pm);
47
48//===----------------------------------------------------------------------===//
49// Registration
50//===----------------------------------------------------------------------===//
51
52void registerCIRDialectTranslation(mlir::MLIRContext &context);
53
54/// Generate the code for registering passes.
55#define GEN_PASS_REGISTRATION
56#include "clang/CIR/Dialect/Passes.h.inc"
57
58} // namespace mlir
59
60#endif // CLANG_CIR_DIALECT_PASSES_H
CallConvTarget
The ABI target whose calling-convention rules drive CallConvLowering.
Definition Passes.h:23
std::unique_ptr< Pass > createCallConvLoweringPass()
std::unique_ptr< Pass > createCIREHABILoweringPass()
std::unique_ptr< Pass > createCIRCanonicalizePass()
std::unique_ptr< Pass > createCIRFlattenCFGPass()
std::unique_ptr< Pass > createLibOptPass()
Definition LibOpt.cpp:73
std::unique_ptr< Pass > createIdiomRecognizerPass()
void populateCIRPreLoweringPasses(mlir::OpPassManager &pm)
std::unique_ptr< Pass > createTargetLoweringPass()
std::unique_ptr< Pass > createGotoSolverPass()
std::unique_ptr< Pass > createLoweringPreparePass()
std::unique_ptr< Pass > createCIRSimplifyPass()
std::unique_ptr< Pass > createCXXABILoweringPass()
std::unique_ptr< Pass > createHoistAllocasPass()
void registerCIRDialectTranslation(mlir::MLIRContext &context)