clang
24.0.0git
include
clang
CIR
Dialect
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
19
namespace
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.
23
enum class
CallConvTarget
{
None
,
Test
,
X86_64
};
24
}
// namespace cir
25
26
namespace
clang
{
27
class
ASTContext
;
28
}
29
30
namespace
mlir
{
31
32
std::unique_ptr<Pass>
createCIRCanonicalizePass
();
33
std::unique_ptr<Pass>
createCIRFlattenCFGPass
();
34
std::unique_ptr<Pass>
createCIRSimplifyPass
();
35
std::unique_ptr<Pass>
createCIREHABILoweringPass
();
36
std::unique_ptr<Pass>
createCXXABILoweringPass
();
37
std::unique_ptr<Pass>
createTargetLoweringPass
();
38
std::unique_ptr<Pass>
createCallConvLoweringPass
();
39
std::unique_ptr<Pass>
40
createCallConvLoweringPass
(
cir::CallConvTarget
target,
41
llvm::abi::X86AVXABILevel x86AvxAbiLevel);
42
std::unique_ptr<Pass>
createHoistAllocasPass
();
43
std::unique_ptr<Pass>
createLoweringPreparePass
();
44
std::unique_ptr<Pass>
createLoweringPreparePass
(clang::ASTContext *astCtx);
45
std::unique_ptr<Pass>
createGotoSolverPass
();
46
std::unique_ptr<Pass>
createIdiomRecognizerPass
();
47
std::unique_ptr<Pass>
createLibOptPass
();
48
std::unique_ptr<Pass>
createLibOptPass
(
clang::ASTContext
*astCtx);
49
50
void
populateCIRPreLoweringPasses
(mlir::OpPassManager &pm);
51
52
//===----------------------------------------------------------------------===//
53
// Registration
54
//===----------------------------------------------------------------------===//
55
56
void
registerCIRDialectTranslation
(mlir::MLIRContext &context);
57
58
/// Generate the code for registering passes.
59
#define GEN_PASS_REGISTRATION
60
#include "clang/CIR/Dialect/Passes.h.inc"
61
62
}
// namespace mlir
63
64
#endif
// CLANG_CIR_DIALECT_PASSES_H
clang::ASTContext
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition
ASTContext.h:223
cir
Definition
ABIArgInfo.h:22
cir::OverflowBehavior::None
@ None
Definition
CIRBaseBuilder.h:32
cir::CallConvTarget
CallConvTarget
The ABI target whose calling-convention rules drive CallConvLowering.
Definition
Passes.h:23
cir::CallConvTarget::Test
@ Test
Definition
Passes.h:23
cir::CallConvTarget::X86_64
@ X86_64
Definition
Passes.h:23
clang
The JSON file list parser is used to communicate input to InstallAPI.
Definition
CalledOnceCheck.h:17
mlir
Definition
CIRDataLayoutSpec.h:20
mlir::createCallConvLoweringPass
std::unique_ptr< Pass > createCallConvLoweringPass()
Definition
CallConvLoweringPass.cpp:581
mlir::createCIREHABILoweringPass
std::unique_ptr< Pass > createCIREHABILoweringPass()
Definition
EHABILowering.cpp:1046
mlir::createCIRCanonicalizePass
std::unique_ptr< Pass > createCIRCanonicalizePass()
Definition
CIRCanonicalize.cpp:90
mlir::createCIRFlattenCFGPass
std::unique_ptr< Pass > createCIRFlattenCFGPass()
Definition
FlattenCFG.cpp:2078
mlir::createLibOptPass
std::unique_ptr< Pass > createLibOptPass()
Definition
LibOpt.cpp:75
mlir::createIdiomRecognizerPass
std::unique_ptr< Pass > createIdiomRecognizerPass()
Definition
IdiomRecognizer.cpp:154
mlir::populateCIRPreLoweringPasses
void populateCIRPreLoweringPasses(mlir::OpPassManager &pm)
mlir::createTargetLoweringPass
std::unique_ptr< Pass > createTargetLoweringPass()
Definition
TargetLowering.cpp:327
mlir::createGotoSolverPass
std::unique_ptr< Pass > createGotoSolverPass()
Definition
GotoSolver.cpp:145
mlir::createLoweringPreparePass
std::unique_ptr< Pass > createLoweringPreparePass()
Definition
LoweringPrepare.cpp:2936
mlir::createCIRSimplifyPass
std::unique_ptr< Pass > createCIRSimplifyPass()
Definition
CIRSimplify.cpp:326
mlir::createCXXABILoweringPass
std::unique_ptr< Pass > createCXXABILoweringPass()
Definition
CXXABILowering.cpp:1082
mlir::createHoistAllocasPass
std::unique_ptr< Pass > createHoistAllocasPass()
Definition
HoistAllocas.cpp:110
mlir::registerCIRDialectTranslation
void registerCIRDialectTranslation(mlir::MLIRContext &context)
Definition
LowerToLLVMIR.cpp:165
Generated on
for clang by
1.14.0