#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/IR/Operation.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Target/LLVMIR/ModuleTranslation.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/IR/MatrixBuilder.h"
#include "llvm/IR/Operator.h"
usingnamespacemlir;
usingnamespacemlir::LLVM;
getLLVMConstant;
#include "mlir/Dialect/LLVMIR/LLVMConversionEnumsToLLVM.inc"
static llvm::FastMathFlags getFastmathFlags(FastmathFlagsInterface &op) { … }
static SmallVector<unsigned> extractPosition(ArrayRef<int64_t> indices) { … }
static std::string diagStr(const llvm::Type *type) { … }
static FailureOr<llvm::Function *>
getOverloadedDeclaration(CallIntrinsicOp op, llvm::Intrinsic::ID id,
llvm::Module *module,
LLVM::ModuleTranslation &moduleTranslation) { … }
static llvm::OperandBundleDef
convertOperandBundle(OperandRange bundleOperands, StringRef bundleTag,
LLVM::ModuleTranslation &moduleTranslation) { … }
static SmallVector<llvm::OperandBundleDef>
convertOperandBundles(OperandRangeRange bundleOperands,
ArrayRef<std::string> bundleTags,
LLVM::ModuleTranslation &moduleTranslation) { … }
static LogicalResult
convertCallLLVMIntrinsicOp(CallIntrinsicOp op, llvm::IRBuilderBase &builder,
LLVM::ModuleTranslation &moduleTranslation) { … }
static void convertLinkerOptionsOp(ArrayAttr options,
llvm::IRBuilderBase &builder,
LLVM::ModuleTranslation &moduleTranslation) { … }
static LogicalResult
convertOperationImpl(Operation &opInst, llvm::IRBuilderBase &builder,
LLVM::ModuleTranslation &moduleTranslation) { … }
namespace {
class LLVMDialectLLVMIRTranslationInterface
: public LLVMTranslationDialectInterface { … };
}
void mlir::registerLLVMDialectTranslation(DialectRegistry ®istry) { … }
void mlir::registerLLVMDialectTranslation(MLIRContext &context) { … }