<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 1, 2013 at 1:43 PM, Preston Briggs <span dir="ltr"><<a href="mailto:preston.briggs@gmail.com" target="_blank" class="cremed">preston.briggs@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>So it sounds like we'll need to disable the little bit of code that makes this assumption and take our lumps with linearizing everything. We might try writing a delinearizer following Maslov (Hal Finkel also had ideas worth visiting).</div>

<div><br></div><div>Alternatively, we might revisit the definition of GEPs, looking for an alternative that lets a C or Fortran front end express multidimensional array references without linearizing everything.</div></blockquote>
</div><br>Just so we're all on the same page -- we're all on the same page. =D This was all I was trying to highlight and Arnold did a much better job.</div><div class="gmail_extra"><br></div><div class="gmail_extra">
If we want to define an IR construct to express multidimensional array references without linearizing, I suspect we would need a very different / new instruction... retrofitting GEP seems risky given its existing uses and complexity. If you or other folks have ideas of how to represent this effectively in LLVM's IR, by all means fire away. =]</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Personally, I think it would be useful to at see if we could at least delinearize "obvious" or "easy" cases. We might actually get reasonably good mileage out of this. However, my perspective here is biased -- I work almost exclusively with a language that doesn't provide the guarantees Fortran does regarding multidimensional arrays.</div>
</div>