Commit d93817c4 by Zdenek Dvorak Committed by Zdenek Dvorak

tree-data-ref.c (dump_subscript): Use dump_conflict_function.

	* tree-data-ref.c (dump_subscript): Use dump_conflict_function.
	(compute_subscript_distance, initialize_data_dependence_relation,
	finalize_ddr_dependent, analyze_ziv_subscript,
	analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_univar,
	compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
	analyze_siv_subscript, analyze_miv_subscript,
	analyze_overlapping_iterations, subscript_dependence_tester_1,
	compute_self_dependence, free_dependence_relation): Work
	with affine_fn instead of chrecs.
	(dump_affine_function, dump_conflict_function, affine_function_equal_p,
	common_affine_function, affine_function_base,
	affine_function_constant_p, affine_fn_op, affine_fn_plus,
	affine_fn_minus, affine_fn_free, conflict_fn_not_known,
	conflict_fn_no_dependence, free_conflict_function, free_subscripts,
	conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
	(all_chrecs_equal_p): Removed.
	* tree-data-ref.h (affine_fn, conflict_function): New types.
	(struct subscript): Change type of conflicting_iterations_in_a
	and conflicting_iterations_in_b.

From-SVN: r121212
parent dfcb2b51
2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
* tree-data-ref.c (dump_subscript): Use dump_conflict_function.
(compute_subscript_distance, initialize_data_dependence_relation,
finalize_ddr_dependent, analyze_ziv_subscript,
analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_univar,
compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
analyze_siv_subscript, analyze_miv_subscript,
analyze_overlapping_iterations, subscript_dependence_tester_1,
compute_self_dependence, free_dependence_relation): Work
with affine_fn instead of chrecs.
(dump_affine_function, dump_conflict_function, affine_function_equal_p,
common_affine_function, affine_function_base,
affine_function_constant_p, affine_fn_op, affine_fn_plus,
affine_fn_minus, affine_fn_free, conflict_fn_not_known,
conflict_fn_no_dependence, free_conflict_function, free_subscripts,
conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
(all_chrecs_equal_p): Removed.
* tree-data-ref.h (affine_fn, conflict_function): New types.
(struct subscript): Change type of conflicting_iterations_in_a
and conflicting_iterations_in_b.
2007-01-26 Steve Ellcey <sje@cup.hp.com>
PR other/30182
......
......@@ -190,6 +190,29 @@ enum data_dependence_direction {
dir_independent
};
/* The description of the grid of iterations that overlap. At most
two loops are considered at the same time just now, hence at most
two functions are needed. For each of the functions, we store
the vector of coefficients, f[0] + x * f[1] + y * f[2] + ...,
where x, y, ... are variables. */
#define MAX_DIM 2
/* Special values of N. */
#define NO_DEPENDENCE 0
#define NOT_KNOWN (MAX_DIM + 1)
#define CF_NONTRIVIAL_P(CF) ((CF)->n != NO_DEPENDENCE && (CF)->n != NOT_KNOWN)
#define CF_NOT_KNOWN_P(CF) ((CF)->n == NOT_KNOWN)
#define CF_NO_DEPENDENCE_P(CF) ((CF)->n == NO_DEPENDENCE)
typedef VEC (tree, heap) *affine_fn;
typedef struct
{
unsigned n;
affine_fn fns[MAX_DIM];
} conflict_function;
/* What is a subscript? Given two array accesses a subscript is the
tuple composed of the access functions for a given dimension.
Example: Given A[f1][f2][f3] and B[g1][g2][g3], there are three
......@@ -201,8 +224,8 @@ struct subscript
{
/* A description of the iterations for which the elements are
accessed twice. */
tree conflicting_iterations_in_a;
tree conflicting_iterations_in_b;
conflict_function *conflicting_iterations_in_a;
conflict_function *conflicting_iterations_in_b;
/* This field stores the information about the iteration domain
validity of the dependence relation. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment