llvm
llvm copied to clipboard
[WIP][SYCL-MLIR]: Changes to fix codegen
- Added all remaining functions needed for the
single_tasktest case in supported function list. Only declaration remains in the generated LLVMIR:
declare i8* @malloc(i64)
declare void @free(i8*)
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #1
- Given that not all SYCL functions are member functions,
sycl.callType attribute may not exists. - For
polygeist.subindexmemref<1xstruct<sycl>>->memref<?xstruct<sycl>>lowering, we can reuse the original code. - For
polygeist.subindex, the element type ofmemref<?xstruct<>>may not be SYCL type when it is created as apolygeist.subindexchain from a SYCL type. - In
Pointer2MemrefOpLowering,AddrSpaceCastOpis needed for address spaces of the operand and result of the createdBitcastOpis different.
Signed-off-by: Tsang, Whitney [email protected]