Hi,

As described in comments of PR89725, this patch fixes out-of-bound access during
computing classic dist/dir vector for DDR.  Basically it does two things: A) 
Handle
relevant chrec of outer loop in multivariate access function as invariant 
symbol during
DDR analysis; B) Bypass relevant univariate access functions.

Bootstrap and test on x86_64, any comments?

Thanks,
bin

2019-04-01  Bin Cheng  <bin.ch...@linux.alibaba.com>

        PR tree-optimization/89725
        * tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
        loop's chrec as invariant symbol.
        * tree-chrec.h (chrec_contains_symbols): New parameter.
        * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
        (build_classic_dist_vector_1, add_other_self_distances): Bypass access
        function of loops not in DDR's loop_nest.
        * tree-data-ref.h (index_in_loop_nest): New assertion.

2018-04-01  Bin Cheng  <bin.ch...@linux.alibaba.com>

        PR tree-optimization/89725
        * gcc/testsuite/gcc.dg/tree-ssa/pr89725.c: New test.

Attachment: 0001-pr89725.patch
Description: Binary data

Reply via email to