#include "flang/Common/indirection.h"
#include "flang/Parser/char-block.h"
#include "flang/Semantics/tools.h"
-#include "mlir/Dialect/Arithmetic/IR/Arithmetic.h"
+#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "llvm/ADT/StringRef.h"
#ifndef FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
#define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
-#include "mlir/Dialect/Arithmetic/IR/Arithmetic.h"
+#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
namespace fir {
include "mlir/IR/OpBase.td"
include "mlir/IR/PatternBase.td"
-include "mlir/Dialect/Arithmetic/IR/ArithmeticOps.td"
+include "mlir/Dialect/Arith/IR/ArithOps.td"
include "flang/Optimizer/Dialect/FIROps.td"
def IdenticalTypePred : Constraint<CPred<"$0.getType() == $1.getType()">>;
#define FORTRAN_OPTIMIZER_DIALECT_FIROPS_H
#include "flang/Optimizer/Dialect/FIRType.h"
-#include "mlir/Dialect/Arithmetic/IR/Arithmetic.h"
+#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Interfaces/LoopLikeInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#define FLANG_NONCODEGEN_DIALECT_LIST \
mlir::AffineDialect, FIROpsDialect, mlir::acc::OpenACCDialect, \
mlir::omp::OpenMPDialect, mlir::scf::SCFDialect, \
- mlir::arith::ArithmeticDialect, mlir::cf::ControlFlowDialect, \
+ mlir::arith::ArithDialect, mlir::cf::ControlFlowDialect, \
mlir::func::FuncDialect, mlir::vector::VectorDialect, \
mlir::math::MathDialect
#include "flang/Optimizer/Support/InternalNames.h"
#include "flang/Optimizer/Support/TypeCode.h"
#include "flang/Semantics/runtime-type-info.h"
-#include "mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h"
+#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
#include "mlir/Conversion/LLVMCommon/Pattern.h"
options);
mlir::populateFuncToLLVMConversionPatterns(typeConverter, pattern);
mlir::populateOpenMPToLLVMConversionPatterns(typeConverter, pattern);
- mlir::arith::populateArithmeticToLLVMConversionPatterns(typeConverter,
- pattern);
+ mlir::arith::populateArithToLLVMConversionPatterns(typeConverter, pattern);
mlir::cf::populateControlFlowToLLVMConversionPatterns(typeConverter,
pattern);
// Convert math-like dialect operations, which can be produced
auto &context = getContext();
mlir::OpBuilder rewriter(&context);
mlir::ConversionTarget target(context);
- target.addLegalDialect<mlir::arith::ArithmeticDialect, fir::FIROpsDialect,
+ target.addLegalDialect<mlir::arith::ArithDialect, fir::FIROpsDialect,
fir::FIRCodeGenDialect, mlir::func::FuncDialect>();
target.addIllegalOp<fir::ArrayCoorOp>();
target.addIllegalOp<fir::ReboxOp>();
LINK_LIBS
FIRSupport
- MLIRArithmeticDialect
+ MLIRArithDialect
MLIROpenMPToLLVM
MLIRLLVMToLLVMIRTranslation
MLIRTargetLLVMIRExport
self.runOnSpecificOperation(op, shouldBoxResult, patterns, target);
// Convert the calls and, if needed, the ReturnOp in the function body.
- target.addLegalDialect<fir::FIROpsDialect, mlir::arith::ArithmeticDialect,
+ target.addLegalDialect<fir::FIROpsDialect, mlir::arith::ArithDialect,
mlir::func::FuncDialect>();
target.addIllegalOp<fir::SaveResultOp>();
target.addDynamicallyLegalOp<fir::CallOp>([](fir::CallOp call) {
return false;
return true;
});
- target.addLegalDialect<FIROpsDialect, mlir::scf::SCFDialect,
- mlir::arith::ArithmeticDialect,
- mlir::func::FuncDialect>();
+ target
+ .addLegalDialect<FIROpsDialect, mlir::scf::SCFDialect,
+ mlir::arith::ArithDialect, mlir::func::FuncDialect>();
if (mlir::failed(mlir::applyPartialConversion(function, target,
std::move(patterns)))) {
patterns.insert<AffineIfConversion>(context, functionAnalysis);
patterns.insert<AffineLoopConversion>(context, functionAnalysis);
mlir::ConversionTarget target = *context;
- target.addLegalDialect<
- mlir::AffineDialect, FIROpsDialect, mlir::scf::SCFDialect,
- mlir::arith::ArithmeticDialect, mlir::func::FuncDialect>();
+ target.addLegalDialect<mlir::AffineDialect, FIROpsDialect,
+ mlir::scf::SCFDialect, mlir::arith::ArithDialect,
+ mlir::func::FuncDialect>();
target.addDynamicallyLegalOp<IfOp>([&functionAnalysis](fir::IfOp op) {
return !(functionAnalysis.getChildIfAnalysis(op).canPromoteToAffine());
});
patterns1.insert<ArrayAccessConversion>(context, analysis, useMap);
patterns1.insert<ArrayAmendConversion>(context);
mlir::ConversionTarget target(*context);
- target.addLegalDialect<FIROpsDialect, mlir::scf::SCFDialect,
- mlir::arith::ArithmeticDialect,
- mlir::func::FuncDialect>();
+ target
+ .addLegalDialect<FIROpsDialect, mlir::scf::SCFDialect,
+ mlir::arith::ArithDialect, mlir::func::FuncDialect>();
target.addIllegalOp<ArrayAccessOp, ArrayAmendOp, ArrayFetchOp,
ArrayUpdateOp, ArrayModifyOp>();
// Rewrite the array fetch and array update ops.
patterns.insert<CharacterConvertConversion>(context);
mlir::ConversionTarget target(*context);
target.addLegalDialect<mlir::AffineDialect, fir::FIROpsDialect,
- mlir::arith::ArithmeticDialect,
+ mlir::arith::ArithDialect,
mlir::func::FuncDialect>();
// apply the patterns
const auto &analysis = getAnalysis<ReturnAnalysis>();
- target.addLegalDialect<fir::FIROpsDialect, mlir::arith::ArithmeticDialect,
+ target.addLegalDialect<fir::FIROpsDialect, mlir::arith::ArithDialect,
mlir::func::FuncDialect>();
target.addDynamicallyLegalOp<fir::AllocaOp>([&](fir::AllocaOp alloca) {
return keepStackAllocation(alloca, &func.front(), options);