Program Listing for File BufferInfo.h

↰ Return to documentation for file (include/laksa-mlir/Target/LaksaCommon/BufferInfo.h)

#pragma once

#include "laksa-mlir/Dialect/EmitHLS/IR/EmitHLS.h"

#include "llvm/ADT/SmallVector.h"

namespace mlir::emithls {

struct LaksaBufferInfo {
    bool isReadByKernel = false;
    bool isWrittenByKernel = false;
    int64_t numElements = 0;
    unsigned elementBits = 0;

    int64_t getSizeInBytes() const
    { return numElements * ((elementBits + 7) / 8); }
};

FailureOr<FuncOp> findLaksaTopFunc(ModuleOp moduleOp);

LogicalResult collectLaksaBufferInfos(
    FuncOp topFunc,
    SmallVectorImpl<LaksaBufferInfo> &buffers);

std::string getLaksaMacroPrefix(StringRef designName);

} // namespace mlir::emithls