Add MS Mangling for OpenCL Pipe types, add mangling test.
SPIRV2.0 Spec only specifies Linux mangling, however our downstream has use for a Windows mangling for these types. Unfortunately, the SPIRV spec specifies a single mangling for all pipe types, despite clang allowing overloading on these types. Because of this, this patch chooses to mangle the read/writability and element type for the windows mangling. The windows manglings in the test all demangle according to demangler: "void __cdecl test1(struct __clang::ocl_pipe<int,1>) "void __cdecl test2(struct __clang::ocl_pipe<float,0>) "void __cdecl test2(struct __clang::ocl_pipe<int,1>) "void __cdecl test3(struct __clang::ocl_pipe<int const,1>) "void __cdecl test4(struct __clang::ocl_pipe<union __clang::__vector<unsigned char,3>,1>) "void __cdecl test5(struct __clang::ocl_pipe<union __clang::__vector<int,4>,1>) "void __cdecl test_reserved_read_pipe(struct __clang::_ASCLglobal<struct Person > * __ptr64,struct __clang::ocl_pipe<struct Person,1>) Differential Revision: https://reviews.llvm.org/D75685
Loading
Please register or sign in to comment