llvm-project
87f4e809 - [SPIRV] Add support for CodeSectionINTEL storage class in legalizer (#167961)

Commit
6 days ago
[SPIRV] Add support for CodeSectionINTEL storage class in legalizer (#167961) The [SPV_INTEL_function_pointers](https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_function_pointers.asciidoc) extension defines a new storage class `CodeSectionINTEL` that is represented in LLVM IR as `addrspace(9)`. Per the spec, it is basically not allowed to be casted to or interact with pointers with other storage classes. Add `addrspace(9)` as a known pointer type to the legalizer, and then add some error cases for IR that is impossible to legalize. Right now, if you try to run the backend on input with SPIR-V, basically everything errors saying that it is unable to legalize because `ptr addrspace(9)` is not considered a pointer type. Ideally the FE should not generate the illegal IR or error out earlier, but we should catch it before generating invalid SPIR-V. --------- Signed-off-by: Nick Sarnie <nick.sarnie@intel.com>
Author
Parents
Loading