Lines Matching refs:ddr
417 struct data_dependence_relation *ddr) in dump_data_dependence_relation() argument
423 if (!ddr || DDR_ARE_DEPENDENT (ddr) == chrec_dont_know) in dump_data_dependence_relation()
425 if (ddr) in dump_data_dependence_relation()
427 dra = DDR_A (ddr); in dump_data_dependence_relation()
428 drb = DDR_B (ddr); in dump_data_dependence_relation()
442 dra = DDR_A (ddr); in dump_data_dependence_relation()
443 drb = DDR_B (ddr); in dump_data_dependence_relation()
447 if (DDR_ARE_DEPENDENT (ddr) == chrec_known) in dump_data_dependence_relation()
450 else if (DDR_ARE_DEPENDENT (ddr) == NULL_TREE) in dump_data_dependence_relation()
456 FOR_EACH_VEC_ELT (DDR_SUBSCRIPTS (ddr), i, sub) in dump_data_dependence_relation()
465 fprintf (outf, " inner loop index: %d\n", DDR_INNER_LOOP (ddr)); in dump_data_dependence_relation()
467 FOR_EACH_VEC_ELT (DDR_LOOP_NEST (ddr), i, loopi) in dump_data_dependence_relation()
471 for (i = 0; i < DDR_NUM_DIST_VECTS (ddr); i++) in dump_data_dependence_relation()
474 print_lambda_vector (outf, DDR_DIST_VECT (ddr, i), in dump_data_dependence_relation()
475 DDR_NB_LOOPS (ddr)); in dump_data_dependence_relation()
478 for (i = 0; i < DDR_NUM_DIR_VECTS (ddr); i++) in dump_data_dependence_relation()
481 print_direction_vector (outf, DDR_DIR_VECT (ddr, i), in dump_data_dependence_relation()
482 DDR_NB_LOOPS (ddr)); in dump_data_dependence_relation()
492 debug_data_dependence_relation (struct data_dependence_relation *ddr) in debug_data_dependence_relation() argument
494 dump_data_dependence_relation (stderr, ddr); in debug_data_dependence_relation()
504 struct data_dependence_relation *ddr; in dump_data_dependence_relations() local
506 FOR_EACH_VEC_ELT (ddrs, i, ddr) in dump_data_dependence_relations()
507 dump_data_dependence_relation (file, ddr); in dump_data_dependence_relations()
543 struct data_dependence_relation *ddr; in dump_dist_dir_vectors() local
546 FOR_EACH_VEC_ELT (ddrs, i, ddr) in dump_dist_dir_vectors()
547 if (DDR_ARE_DEPENDENT (ddr) == NULL_TREE && DDR_AFFINE_P (ddr)) in dump_dist_dir_vectors()
549 FOR_EACH_VEC_ELT (DDR_DIST_VECTS (ddr), j, v) in dump_dist_dir_vectors()
552 print_lambda_vector (file, v, DDR_NB_LOOPS (ddr)); in dump_dist_dir_vectors()
556 FOR_EACH_VEC_ELT (DDR_DIR_VECTS (ddr), j, v) in dump_dist_dir_vectors()
559 print_direction_vector (file, v, DDR_NB_LOOPS (ddr)); in dump_dist_dir_vectors()
573 struct data_dependence_relation *ddr; in dump_ddrs() local
575 FOR_EACH_VEC_ELT (ddrs, i, ddr) in dump_ddrs()
576 dump_data_dependence_relation (file, ddr); in dump_ddrs()
1322 runtime_alias_check_p (ddr_p ddr, struct loop *loop, bool speed_p) in runtime_alias_check_p() argument
1327 dump_generic_expr (MSG_NOTE, TDF_SLIM, DR_REF (DDR_A (ddr))); in runtime_alias_check_p()
1329 dump_generic_expr (MSG_NOTE, TDF_SLIM, DR_REF (DDR_B (ddr))); in runtime_alias_check_p()
2138 compute_subscript_distance (struct data_dependence_relation *ddr) in compute_subscript_distance() argument
2143 if (DDR_ARE_DEPENDENT (ddr) == NULL_TREE) in compute_subscript_distance()
2147 for (i = 0; i < DDR_NUM_SUBSCRIPTS (ddr); i++) in compute_subscript_distance()
2151 subscript = DDR_SUBSCRIPT (ddr, i); in compute_subscript_distance()
2700 finalize_ddr_dependent (struct data_dependence_relation *ddr, in finalize_ddr_dependent() argument
2703 DDR_ARE_DEPENDENT (ddr) = chrec; in finalize_ddr_dependent()
2704 free_subscripts (DDR_SUBSCRIPTS (ddr)); in finalize_ddr_dependent()
2705 DDR_SUBSCRIPTS (ddr).create (0); in finalize_ddr_dependent()
2712 non_affine_dependence_relation (struct data_dependence_relation *ddr) in non_affine_dependence_relation() argument
2717 DDR_AFFINE_P (ddr) = false; in non_affine_dependence_relation()
4192 save_dist_v (struct data_dependence_relation *ddr, lambda_vector dist_v) in save_dist_v() argument
4197 FOR_EACH_VEC_ELT (DDR_DIST_VECTS (ddr), i, v) in save_dist_v()
4198 if (lambda_vector_equal (v, dist_v, DDR_NB_LOOPS (ddr))) in save_dist_v()
4201 DDR_DIST_VECTS (ddr).safe_push (dist_v); in save_dist_v()
4207 save_dir_v (struct data_dependence_relation *ddr, lambda_vector dir_v) in save_dir_v() argument
4212 FOR_EACH_VEC_ELT (DDR_DIR_VECTS (ddr), i, v) in save_dir_v()
4213 if (lambda_vector_equal (v, dir_v, DDR_NB_LOOPS (ddr))) in save_dir_v()
4216 DDR_DIR_VECTS (ddr).safe_push (dir_v); in save_dir_v()
4234 add_outer_distances (struct data_dependence_relation *ddr, in add_outer_distances() argument
4241 lambda_vector save_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in add_outer_distances()
4242 lambda_vector_copy (dist_v, save_v, DDR_NB_LOOPS (ddr)); in add_outer_distances()
4244 save_dist_v (ddr, save_v); in add_outer_distances()
4256 build_classic_dist_vector_1 (struct data_dependence_relation *ddr, in build_classic_dist_vector_1() argument
4262 lambda_vector init_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector_1()
4264 for (i = 0; i < DDR_NUM_SUBSCRIPTS (ddr); i++) in build_classic_dist_vector_1()
4267 struct subscript *subscript = DDR_SUBSCRIPT (ddr, i); in build_classic_dist_vector_1()
4271 non_affine_dependence_relation (ddr); in build_classic_dist_vector_1()
4289 non_affine_dependence_relation (ddr); in build_classic_dist_vector_1()
4294 index = index_in_loop_nest (var_a, DDR_LOOP_NEST (ddr)); in build_classic_dist_vector_1()
4309 finalize_ddr_dependent (ddr, chrec_known); in build_classic_dist_vector_1()
4322 non_affine_dependence_relation (ddr); in build_classic_dist_vector_1()
4333 constant_access_functions (const struct data_dependence_relation *ddr) in constant_access_functions() argument
4338 FOR_EACH_VEC_ELT (DDR_SUBSCRIPTS (ddr), i, sub) in constant_access_functions()
4351 add_multivariate_self_dist (struct data_dependence_relation *ddr, tree c_2) in add_multivariate_self_dist() argument
4366 DDR_AFFINE_P (ddr) = false; in add_multivariate_self_dist()
4370 x_2 = index_in_loop_nest (CHREC_VARIABLE (c_2), DDR_LOOP_NEST (ddr)); in add_multivariate_self_dist()
4371 x_1 = index_in_loop_nest (CHREC_VARIABLE (c_1), DDR_LOOP_NEST (ddr)); in add_multivariate_self_dist()
4374 dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in add_multivariate_self_dist()
4389 save_dist_v (ddr, dist_v); in add_multivariate_self_dist()
4391 add_outer_distances (ddr, dist_v, x_1); in add_multivariate_self_dist()
4398 add_other_self_distances (struct data_dependence_relation *ddr) in add_other_self_distances() argument
4402 int index_carry = DDR_NB_LOOPS (ddr); in add_other_self_distances()
4405 FOR_EACH_VEC_ELT (DDR_SUBSCRIPTS (ddr), i, sub) in add_other_self_distances()
4413 if (DDR_NUM_SUBSCRIPTS (ddr) != 1) in add_other_self_distances()
4415 DDR_ARE_DEPENDENT (ddr) = chrec_dont_know; in add_other_self_distances()
4419 access_fun = SUB_ACCESS_FN (DDR_SUBSCRIPT (ddr, 0), 0); in add_other_self_distances()
4422 add_multivariate_self_dist (ddr, access_fun); in add_other_self_distances()
4428 DDR_AFFINE_P (ddr) = false; in add_other_self_distances()
4435 DDR_LOOP_NEST (ddr))); in add_other_self_distances()
4439 dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in add_other_self_distances()
4440 add_outer_distances (ddr, dist_v, index_carry); in add_other_self_distances()
4444 insert_innermost_unit_dist_vector (struct data_dependence_relation *ddr) in insert_innermost_unit_dist_vector() argument
4446 lambda_vector dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in insert_innermost_unit_dist_vector()
4448 dist_v[DDR_INNER_LOOP (ddr)] = 1; in insert_innermost_unit_dist_vector()
4449 save_dist_v (ddr, dist_v); in insert_innermost_unit_dist_vector()
4464 add_distance_for_zero_overlaps (struct data_dependence_relation *ddr) in add_distance_for_zero_overlaps() argument
4468 for (i = 0; i < DDR_NUM_SUBSCRIPTS (ddr); i++) in add_distance_for_zero_overlaps()
4470 subscript_p sub = DDR_SUBSCRIPT (ddr, i); in add_distance_for_zero_overlaps()
4477 insert_innermost_unit_dist_vector (ddr); in add_distance_for_zero_overlaps()
4484 insert_innermost_unit_dist_vector (ddr); in add_distance_for_zero_overlaps()
4494 same_access_functions (const struct data_dependence_relation *ddr) in same_access_functions() argument
4499 FOR_EACH_VEC_ELT (DDR_SUBSCRIPTS (ddr), i, sub) in same_access_functions()
4512 build_classic_dist_vector (struct data_dependence_relation *ddr, in build_classic_dist_vector() argument
4516 int index_carry = DDR_NB_LOOPS (ddr); in build_classic_dist_vector()
4519 if (DDR_ARE_DEPENDENT (ddr) != NULL_TREE) in build_classic_dist_vector()
4522 if (same_access_functions (ddr)) in build_classic_dist_vector()
4525 dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4526 save_dist_v (ddr, dist_v); in build_classic_dist_vector()
4528 if (constant_access_functions (ddr)) in build_classic_dist_vector()
4529 add_distance_for_zero_overlaps (ddr); in build_classic_dist_vector()
4531 if (DDR_NB_LOOPS (ddr) > 1) in build_classic_dist_vector()
4532 add_other_self_distances (ddr); in build_classic_dist_vector()
4537 dist_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4538 if (!build_classic_dist_vector_1 (ddr, 0, 1, dist_v, &init_b, &index_carry)) in build_classic_dist_vector()
4568 if (!lambda_vector_lexico_pos (dist_v, DDR_NB_LOOPS (ddr))) in build_classic_dist_vector()
4570 lambda_vector save_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4571 if (!subscript_dependence_tester_1 (ddr, 1, 0, loop_nest)) in build_classic_dist_vector()
4573 compute_subscript_distance (ddr); in build_classic_dist_vector()
4574 if (!build_classic_dist_vector_1 (ddr, 1, 0, save_v, &init_b, in build_classic_dist_vector()
4577 save_dist_v (ddr, save_v); in build_classic_dist_vector()
4578 DDR_REVERSED_P (ddr) = true; in build_classic_dist_vector()
4596 if (DDR_NB_LOOPS (ddr) > 1) in build_classic_dist_vector()
4598 add_outer_distances (ddr, save_v, index_carry); in build_classic_dist_vector()
4599 add_outer_distances (ddr, dist_v, index_carry); in build_classic_dist_vector()
4604 lambda_vector save_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4605 lambda_vector_copy (dist_v, save_v, DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4607 if (DDR_NB_LOOPS (ddr) > 1) in build_classic_dist_vector()
4609 lambda_vector opposite_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4611 if (!subscript_dependence_tester_1 (ddr, 1, 0, loop_nest)) in build_classic_dist_vector()
4613 compute_subscript_distance (ddr); in build_classic_dist_vector()
4614 if (!build_classic_dist_vector_1 (ddr, 1, 0, opposite_v, &init_b, in build_classic_dist_vector()
4618 save_dist_v (ddr, save_v); in build_classic_dist_vector()
4619 add_outer_distances (ddr, dist_v, index_carry); in build_classic_dist_vector()
4620 add_outer_distances (ddr, opposite_v, index_carry); in build_classic_dist_vector()
4623 save_dist_v (ddr, save_v); in build_classic_dist_vector()
4635 add_outer_distances (ddr, dist_v, in build_classic_dist_vector()
4637 DDR_NB_LOOPS (ddr), 0)); in build_classic_dist_vector()
4645 for (i = 0; i < DDR_NUM_DIST_VECTS (ddr); i++) in build_classic_dist_vector()
4648 print_lambda_vector (dump_file, DDR_DIST_VECT (ddr, i), in build_classic_dist_vector()
4649 DDR_NB_LOOPS (ddr)); in build_classic_dist_vector()
4677 build_classic_dir_vector (struct data_dependence_relation *ddr) in build_classic_dir_vector() argument
4682 FOR_EACH_VEC_ELT (DDR_DIST_VECTS (ddr), i, dist_v) in build_classic_dir_vector()
4684 lambda_vector dir_v = lambda_vector_new (DDR_NB_LOOPS (ddr)); in build_classic_dir_vector()
4686 for (j = 0; j < DDR_NB_LOOPS (ddr); j++) in build_classic_dir_vector()
4689 save_dir_v (ddr, dir_v); in build_classic_dir_vector()
4698 subscript_dependence_tester_1 (struct data_dependence_relation *ddr, in subscript_dependence_tester_1() argument
4707 for (i = 0; DDR_SUBSCRIPTS (ddr).iterate (i, &subscript); i++) in subscript_dependence_tester_1()
4751 finalize_ddr_dependent (ddr, res); in subscript_dependence_tester_1()
4758 subscript_dependence_tester (struct data_dependence_relation *ddr, in subscript_dependence_tester() argument
4761 if (subscript_dependence_tester_1 (ddr, 0, 1, loop_nest)) in subscript_dependence_tester()
4764 compute_subscript_distance (ddr); in subscript_dependence_tester()
4765 if (build_classic_dist_vector (ddr, loop_nest)) in subscript_dependence_tester()
4766 build_classic_dir_vector (ddr); in subscript_dependence_tester()
4798 compute_affine_dependence (struct data_dependence_relation *ddr, in compute_affine_dependence() argument
4801 struct data_reference *dra = DDR_A (ddr); in compute_affine_dependence()
4802 struct data_reference *drb = DDR_B (ddr); in compute_affine_dependence()
4814 if (DDR_ARE_DEPENDENT (ddr) == NULL_TREE) in compute_affine_dependence()
4820 subscript_dependence_tester (ddr, loop_nest); in compute_affine_dependence()
4837 finalize_ddr_dependent (ddr, chrec_dont_know); in compute_affine_dependence()
4843 if (DDR_ARE_DEPENDENT (ddr) == chrec_known) in compute_affine_dependence()
4845 else if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know) in compute_affine_dependence()
4864 struct data_dependence_relation *ddr; in compute_all_dependences() local
4871 struct data_dependence_relation *ddr; in compute_all_dependences() local
4875 ddr = initialize_data_dependence_relation (NULL, NULL, loop_nest); in compute_all_dependences()
4876 dependence_relations->safe_push (ddr); in compute_all_dependences()
4884 ddr = initialize_data_dependence_relation (a, b, loop_nest); in compute_all_dependences()
4885 dependence_relations->safe_push (ddr); in compute_all_dependences()
4887 compute_affine_dependence (ddr, loop_nest[0]); in compute_all_dependences()
4893 ddr = initialize_data_dependence_relation (a, a, loop_nest); in compute_all_dependences()
4894 dependence_relations->safe_push (ddr); in compute_all_dependences()
4896 compute_affine_dependence (ddr, loop_nest[0]); in compute_all_dependences()
5419 free_dependence_relation (struct data_dependence_relation *ddr) in free_dependence_relation() argument
5421 if (ddr == NULL) in free_dependence_relation()
5424 if (DDR_SUBSCRIPTS (ddr).exists ()) in free_dependence_relation()
5425 free_subscripts (DDR_SUBSCRIPTS (ddr)); in free_dependence_relation()
5426 DDR_DIST_VECTS (ddr).release (); in free_dependence_relation()
5427 DDR_DIR_VECTS (ddr).release (); in free_dependence_relation()
5429 free (ddr); in free_dependence_relation()
5439 struct data_dependence_relation *ddr; in free_dependence_relations() local
5441 FOR_EACH_VEC_ELT (dependence_relations, i, ddr) in free_dependence_relations()
5442 if (ddr) in free_dependence_relations()
5443 free_dependence_relation (ddr); in free_dependence_relations()