[llvm] r184684 - LoopVectorize: Add utility class for checking dependency among accesses

Chandler Carruth chandlerc at google.com
Mon Jul 1 18:14:21 PDT 2013


On Mon, Jul 1, 2013 at 1:43 PM, Preston Briggs <preston.briggs at gmail.com>wrote:

> 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).
>
> 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.
>

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.

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. =]


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130701/4b78f70f/attachment.html>


More information about the llvm-commits mailing list