sycl
sycl copied to clipboard
[SYCL] Common functionality header for InSPIRation and SYCL runtime
At the moment the InSPIRation LLVM pass and SYCL runtime share some common code that should be refactored into a shared header that can be reused across the LLVM pass and runtime. This will make it easier to maintain long term.
Current Examples are:
(0) program_manager.cpp: static std::string getUniqueName(const char *KernelName)
(0) InSPIRation.cpp: void setUniqueName(Function &F)
(1) kernel_properties.hpp: static std::vector<size_t> get_reqd_work_group_size(std::string mangledKernelName)
(1) InSPIRation.cpp: SmallVector<llvm::Metadata *, 8> getReqdWorkGroupSize(const std::string& demangledName, LLVMContext &Ctx)
Another option would be to rework these components in the future so that the LLVM Pass and runtime are less intrinsically linked.
Related to discussion in: https://github.com/triSYCL/sycl/pull/19