#ifndef GEMMSTONE_INCLUDE_GEMMSTONE_MICROKERNEL_SHIM_HPP
#define GEMMSTONE_INCLUDE_GEMMSTONE_MICROKERNEL_SHIM_HPP
#include <string>
#include "gemmstone/microkernel/package.hpp"
GEMMSTONE_NAMESPACE_START
namespace microkernel {
enum class HostLanguage { None, OpenCL_C, SYCL, vISA };
struct ShimOptions {
std::string decorator;
int subgroupSize = 0;
bool copyScalarArgs = true;
bool copyTensorArgs = false;
bool useTileOps = false;
uint32_t microkernelID = 0;
};
std::string generateShim(const Package &package, HostLanguage language,
const ShimOptions &options = ShimOptions());
}
GEMMSTONE_NAMESPACE_END
#endif