14#ifndef CLANG_LIB_CIR_DIALECT_TRANSFORMS_TARGETLOWERING_LOWERMODULE_H
15#define CLANG_LIB_CIR_DIALECT_TRANSFORMS_TARGETLOWERING_LOWERMODULE_H
19#include "mlir/IR/BuiltinOps.h"
30 mlir::ModuleOp module;
31 const std::unique_ptr<clang::TargetInfo> target;
32 std::unique_ptr<TargetLoweringInfo> targetLoweringInfo;
33 std::unique_ptr<CIRCXXABI> abi;
34 [[maybe_unused]] mlir::PatternRewriter &rewriter;
38 mlir::ModuleOp &module, std::unique_ptr<clang::TargetInfo> target,
39 mlir::PatternRewriter &rewriter);
44 return target->getCXXABI().getKind();
55 mlir::PatternRewriter &rewriter);
Defines the clang::LangOptions interface.
mlir::MLIRContext * getMLIRContext()
CIRCXXABI & getCXXABI() const
clang::TargetCXXABI::Kind getCXXABIKind() const
LowerModule(clang::LangOptions langOpts, clang::CodeGenOptions codeGenOpts, mlir::ModuleOp &module, std::unique_ptr< clang::TargetInfo > target, mlir::PatternRewriter &rewriter)
const TargetLoweringInfo & getTargetLoweringInfo()
const clang::TargetInfo & getTarget() const
CodeGenOptions - Track various options which control how the code is optimized and passed to the back...
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Kind
The basic C++ ABI kind.
Exposes information about the current target.
Defines the clang::TargetInfo interface.
std::unique_ptr< LowerModule > createLowerModule(mlir::ModuleOp module, mlir::PatternRewriter &rewriter)
static bool lowerModuleLangOpts()