diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-07-11 12:43:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-07-11 12:43:49 -0700 |
commit | 4854d721be78358e59367982bdd94461b4be3c5a (patch) | |
tree | 8ead189e618f8ef1456c8b02c81de0cc1585d8a6 /gcc/tree-data-ref.c | |
parent | 3cdc95b9f8d6c90c4a279783fd3da961c5afb22c (diff) | |
parent | e109f6e438b72ef3e403162971068d28d09b82f5 (diff) | |
download | gcc-4854d721be78358e59367982bdd94461b4be3c5a.zip gcc-4854d721be78358e59367982bdd94461b4be3c5a.tar.gz gcc-4854d721be78358e59367982bdd94461b4be3c5a.tar.bz2 |
Merge from trunk revision e109f6e438b72ef3e403162971068d28d09b82f5
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r-- | gcc/tree-data-ref.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index 851225e..5505ba4 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -4821,17 +4821,19 @@ build_classic_dist_vector_1 (struct data_dependence_relation *ddr, return true; } -/* Return true when the DDR contains only constant access functions. */ +/* Return true when the DDR contains only invariant access functions wrto. loop + number LNUM. */ static bool -constant_access_functions (const struct data_dependence_relation *ddr) +invariant_access_functions (const struct data_dependence_relation *ddr, + int lnum) { unsigned i; subscript *sub; FOR_EACH_VEC_ELT (DDR_SUBSCRIPTS (ddr), i, sub) - if (!evolution_function_is_constant_p (SUB_ACCESS_FN (sub, 0)) - || !evolution_function_is_constant_p (SUB_ACCESS_FN (sub, 1))) + if (!evolution_function_is_invariant_p (SUB_ACCESS_FN (sub, 0), lnum) + || !evolution_function_is_invariant_p (SUB_ACCESS_FN (sub, 1), lnum)) return false; return true; @@ -5030,7 +5032,7 @@ build_classic_dist_vector (struct data_dependence_relation *ddr, dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); save_dist_v (ddr, dist_v); - if (constant_access_functions (ddr)) + if (invariant_access_functions (ddr, loop_nest->num)) add_distance_for_zero_overlaps (ddr); if (DDR_NB_LOOPS (ddr) > 1) |