<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 25, 2021 at 5:33 PM Michael Kruse <<a href="mailto:llvmdev@meinersbur.de">llvmdev@meinersbur.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am Do., 25. März 2021 um 09:42 Uhr schrieb Clement Courbet via<br>
llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>:<br>
> So I tried implementing this on top of `inrange`, and I found out that you can only have one `inrange` index, which doesn't allow us to represent access into multidimensional arrays : <a href="https://reviews.llvm.org/D99341" rel="noreferrer" target="_blank">https://reviews.llvm.org/D99341</a><br>
<br>
I think this is only for the internal representation. According to the<br>
reference (<a href="https://llvm.org/docs/LangRef.html#id230" rel="noreferrer" target="_blank">https://llvm.org/docs/LangRef.html#id230</a>), it is allowed<br>
for each dimension.<br>
<br></blockquote><div><br></div><div>This means that we would have to store one bit per index instead of a single index (right now the implementation is limiting the number of indices to 64). That means that we can support at most 6 indices with SubclassOptionalData. That might be sufficient for the most common cases (not representing the inrange data is not a correctness issue), but we have to be aware of that limitation.</div><div><br></div></div></div>