[flang-commits] [flang] [flang, nfc] Initial changes needed to use llvm intrinsics instead of regular calls (PR #134170)
Razvan Lupusoru via flang-commits
flang-commits at lists.llvm.org
Wed Apr 2 19:44:16 PDT 2025
================
@@ -6184,17 +6184,16 @@ class ArrayExprLowering {
/// Get the function signature of the LLVM memcpy intrinsic.
mlir::FunctionType memcpyType() {
- return fir::factory::getLlvmMemcpy(builder).getFunctionType();
+ auto ptrTy = mlir::LLVM::LLVMPointerType::get(builder.getContext());
+ llvm::SmallVector<mlir::Type> args = {ptrTy, ptrTy, builder.getI64Type()};
+ return mlir::FunctionType::get(builder.getContext(), args, std::nullopt);
}
/// Create a call to the LLVM memcpy intrinsic.
- void createCallMemcpy(llvm::ArrayRef<mlir::Value> args) {
+ void createCallMemcpy(llvm::ArrayRef<mlir::Value> args, bool isVolatile) {
mlir::Location loc = getLoc();
- mlir::func::FuncOp memcpyFunc = fir::factory::getLlvmMemcpy(builder);
- mlir::SymbolRefAttr funcSymAttr =
- builder.getSymbolRefAttr(memcpyFunc.getName());
- mlir::FunctionType funcTy = memcpyFunc.getFunctionType();
- builder.create<fir::CallOp>(loc, funcSymAttr, funcTy.getResults(), args);
+ builder.create<mlir::LLVM::MemcpyOp>(loc, args[0], args[1], args[2],
----------------
razvanlupusoru wrote:
Do fir.ref's work without casting to llvm.ptr explicitly?
https://github.com/llvm/llvm-project/pull/134170
More information about the flang-commits
mailing list