[PATCH] D57825: IR: Add immarg attribute

Nicolai Hähnle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 8 08:02:39 PST 2019


nhaehnle added a comment.

In D57825#1390608 <https://reviews.llvm.org/D57825#1390608>, @arsenm wrote:

> In D57825#1390606 <https://reviews.llvm.org/D57825#1390606>, @nhaehnle wrote:
>
> > In D57825#1390457 <https://reviews.llvm.org/D57825#1390457>, @arsenm wrote:
> >
> > > @nhaehnle can you look at the InstCombineSimplifyDemanded change? I was a bit confused by the assert you added
> >
> >
> > The background of this is that if TFE/LWE is enabled, the SimplifyDemanded logic won't work as-is; but it should also never be hit, because intrinsic calls with TFE/LWE should have a struct return type (e.g. `{v4f32,i32}`) and the SimplifyDemanded logic doesn't support looking through that. The assert double-checks that.
> >
> > In hindsight, it would be possible for somebody to manually create malformed IR which calls image intrinsics with TFE/LWE enabled but with a vector return type. That would be an error, and one could argue that the code should produce an error instead of an assert. It would require a broken frontend or manually written IR, though.
>
>
> I would expect TFE to be turned on by the usage of the struct type. We should probably add a custom verifier check for this


Yes, but there are different modes to TFE/LWE, so we'd still need the argument anyway.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57825/new/

https://reviews.llvm.org/D57825





More information about the llvm-commits mailing list