-
Notifications
You must be signed in to change notification settings - Fork 10.8k
/
Passes.td
38 lines (32 loc) · 1.51 KB
/
Passes.td
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//===-- Passes.td - LLVM pass definition file --------------*- tablegen -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//
#ifndef MLIR_DIALECT_LLVMIR_TRANSFORMS_PASSES
#define MLIR_DIALECT_LLVMIR_TRANSFORMS_PASSES
include "mlir/Pass/PassBase.td"
def LLVMLegalizeForExport : Pass<"llvm-legalize-for-export"> {
let summary = "Legalize LLVM dialect to be convertible to LLVM IR";
let constructor = "::mlir::LLVM::createLegalizeForExportPass()";
let dependentDialects = ["LLVM::LLVMDialect"];
}
def LLVMRequestCWrappers
: Pass<"llvm-request-c-wrappers", "::mlir::func::FuncOp"> {
let summary = "Request C wrapper emission for all functions";
let description = [{
Annotate every builtin function in the module with the LLVM dialect
attribute that instructs the conversion to LLVM to emit the C wrapper for
the function. This pass is expected to be applied immediately before the
conversion of builtin functions to LLVM to avoid the attribute being
dropped by other passes.
}];
let constructor = "::mlir::LLVM::createRequestCWrappersPass()";
}
def NVVMOptimizeForTarget : Pass<"llvm-optimize-for-nvvm-target"> {
let summary = "Optimize NVVM IR";
let constructor = "::mlir::NVVM::createOptimizeForTargetPass()";
}
#endif // MLIR_DIALECT_LLVMIR_TRANSFORMS_PASSES