//===- MemRefBuilder.h - Helper for LLVM MemRef equivalents -----*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// // // Provides a convenience API for emitting IR that inspects or constructs values // of LLVM dialect structure type that correspond to ranked or unranked memref. // //===----------------------------------------------------------------------===// #ifndef MLIR_CONVERSION_LLVMCOMMON_MEMREFBUILDER_H #define MLIR_CONVERSION_LLVMCOMMON_MEMREFBUILDER_H #include "mlir/Conversion/LLVMCommon/StructBuilder.h" #include "mlir/IR/OperationSupport.h" namespace mlir { class LLVMTypeConverter; class MemRefType; class UnrankedMemRefType; namespace LLVM { class LLVMPointerType; } // namespace LLVM /// Helper class to produce LLVM dialect operations extracting or inserting /// elements of a MemRef descriptor. Wraps a Value pointing to the descriptor. /// The Value may be null, in which case none of the operations are valid. class MemRefDescriptor : public StructBuilder { … }; /// Helper class allowing the user to access a range of Values that correspond /// to an unpacked memref descriptor using named accessors. This does not own /// the values. class MemRefDescriptorView { … }; class UnrankedMemRefDescriptor : public StructBuilder { … }; } // namespace mlir #endif // MLIR_CONVERSION_LLVMCOMMON_MEMREFBUILDER_H