[PATCH] D78974: [mlir][StandardToSPIRV] Emulate bitwidths not supported for load op.
Mehdi AMINI via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 1 21:04:47 PDT 2020
mehdi_amini added a comment.
In D78974#2010386 <https://reviews.llvm.org/D78974#2010386>, @antiagainst wrote:
> In D78974#2009336 <https://reviews.llvm.org/D78974#2009336>, @mehdi_amini wrote:
>
> > Isn't this the kind of legalization that can be made on the std dialect itself as a pre-pass before the conversion to SPIRV? That would make all this logic reusable.
>
>
> Good question! But whether to do a specific type conversion is determined by the SPIR-V target environment and it can be quite nuanced. For example, if we only have `StorageBuffer16Acesss` capability then `memref<i16, 0>` will be fine but `memref<i8,0>`/`memref<i16, 4>`/etc. needs to be adjusted. There are many other similar capabilities like `UniformAndStorageBuffer16BitAccess`, `*8BitAccess`, `{Int|Float}{8|16|64}`, etc. This kind of information is only available when converting to SPIR-V and hide behind `SPIRVTypeConverter`. If this is to be implemented as a pre-pass operating on standard types, it's not quite clear to me how to solve the phase-ordering issue and rope the configuration there.
> But regarding code reuse, I guess we might be able to extract some of the index adjusting logic out and change them to templated ones so one can also plug in std and other dialect ops to reuse.
OK, thanks for the explanation!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78974/new/
https://reviews.llvm.org/D78974
More information about the llvm-commits
mailing list