Program Listing for File Conversion.h

↰ Return to documentation for file (include/laksa-mlir-c/Conversion.h)

//===--- Conversion.h - C API for conversion passes ---------------*- C -*-===//
//
// @author  Jiahong Bi (jiahong.bi@tu-dresden.de)
//===----------------------------------------------------------------------===//

#ifndef LAKSA_MLIR_C_CONVERSION_H
#define LAKSA_MLIR_C_CONVERSION_H

#include "mlir-c/IR.h"
#include "mlir-c/Pass.h"
#include "mlir-c/Support.h"

#include <stdbool.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

MLIR_CAPI_EXPORTED void mlirRegisterLAKSAConvertToEmitCPipelines();
MLIR_CAPI_EXPORTED void mlirConversionAddConvertToEmitCPasses(
    MlirOpPassManager passManager,
    uint32_t maxAllocSizeInBytes);

MLIR_CAPI_EXPORTED void mlirRegisterLAKSAConvertToEmitHLSPipelines();
MLIR_CAPI_EXPORTED void mlirConversionAddConvertToEmitHLSPasses(
    MlirOpPassManager passManager,
    int64_t availableBRAM,
    int64_t availableDSP);

//===---------------------------------------------------------------------===//
// Translation (Upstream)
//===---------------------------------------------------------------------===//

MLIR_CAPI_EXPORTED MlirLogicalResult mlirTranslateEmitCToCpp(
    MlirOperation op,
    MlirStringCallback callback,
    void* userData,
    bool declareVariablesAtTop,
    MlirStringRef fileId);

#ifdef __cplusplus
}
#endif

#include "laksa-mlir/Conversion/Passes.capi.h.inc"

#endif