[llvm-commits] [PATCH] Multidimensional Array Index Delinearization Analysis

Sebastian Pop spop at codeaurora.org
Mon Oct 21 14:49:13 PDT 2013


Hi,

Andrew Trick wrote:
> 
> On Oct 10, 2013, at 11:43 AM, Sebastian Pop <spop at codeaurora.org> wrote:
> > Probably an easier way would be to implement an ad-hoc pattern matching to
> > figure out whether Step occurs in each operand of Start, and that would also
> > give me a simple way to compute the remainder in case it does not divide one of
> > the operands.
> > 
> > Let me know what would be the best to implement.
> 
> Sure. Sameer pointed out in this thread that the general problem is one of
> finding a GCD of the start and step. But in this situation there's nothing
> wrong with pattern matching common cases.

Thanks Andy for your guidance on this.  Attached is the delinearization
implemented on top of SCEV analysis with pattern matching implementation of gcd
and div.  I have added all testcases from the original patch of Hal (also
attached for reference) all these testcases pass with no regressions (with
respect to Hal's implementation.)

I have also integrated the delinearization in Preston's dependence analysis.  I
have updated the test-suite with what is now recognized as dependences with the
-da-delinearize flag turned on.  Preston, could you please review these changes,
I am not sure I agree with all these changes to the test-suite, and that means
we will have to adjust either the delinearization or the dependence analysis
pass.

Thanks for reviewing the two attached patches (Hal's patch is provided for
reference purposes only),

Sebastian
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-add-array-index-delinearization-pass.patch
Type: text/x-diff
Size: 83611 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131021/658eea86/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-delinearization-of-arrays.patch
Type: text/x-diff
Size: 60106 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131021/658eea86/attachment-0001.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-add-delinearization-to-DependenceAnalysis-pass.patch
Type: text/x-diff
Size: 10995 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131021/658eea86/attachment-0002.patch>


More information about the llvm-commits mailing list