diff options
author | Sebastian Pop <pop@cri.ensmp.fr> | 2006-02-20 21:25:54 +0100 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2006-02-20 20:25:54 +0000 |
commit | 0ff4040e026ae3e9ffb6ff58f195944ef8a41249 (patch) | |
tree | 45b8c5480ee9c4ad169479540e3dedfe214df603 /gcc/tree-data-ref.h | |
parent | 643519b778286cad4430d0eb4b7a7082120a5fdb (diff) | |
download | gcc-0ff4040e026ae3e9ffb6ff58f195944ef8a41249.zip gcc-0ff4040e026ae3e9ffb6ff58f195944ef8a41249.tar.gz gcc-0ff4040e026ae3e9ffb6ff58f195944ef8a41249.tar.bz2 |
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
Diffstat (limited to 'gcc/tree-data-ref.h')
-rw-r--r-- | gcc/tree-data-ref.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h index 5b90e2d..2c246df 100644 --- a/gcc/tree-data-ref.h +++ b/gcc/tree-data-ref.h @@ -1,6 +1,6 @@ /* Data references and dependences detectors. - Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. - Contributed by Sebastian Pop <s.pop@laposte.net> + Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Contributed by Sebastian Pop <pop@cri.ensmp.fr> This file is part of GCC. @@ -228,6 +228,10 @@ struct data_dependence_relation VEC(lambda_vector,heap) *dist_vects; }; +typedef struct data_dependence_relation *ddr_p; +DEF_VEC_P(ddr_p); +DEF_VEC_ALLOC_P(ddr_p,heap); + #define DDR_A(DDR) DDR->a #define DDR_B(DDR) DDR->b #define DDR_AFFINE_P(DDR) DDR->affine_p @@ -253,13 +257,9 @@ struct data_dependence_relation extern tree find_data_references_in_loop (struct loop *, varray_type *); -extern struct data_dependence_relation *initialize_data_dependence_relation -(struct data_reference *, struct data_reference *); -extern void compute_affine_dependence (struct data_dependence_relation *); -extern void analyze_all_data_dependences (struct loops *); extern void compute_data_dependences_for_loop (struct loop *, bool, varray_type *, varray_type *); - +extern void print_direction_vector (FILE *, lambda_vector, int); extern void dump_subscript (FILE *, struct subscript *); extern void dump_ddrs (FILE *, varray_type); extern void dump_dist_dir_vectors (FILE *, varray_type); @@ -273,11 +273,9 @@ extern void dump_data_dependence_direction (FILE *, extern void free_dependence_relation (struct data_dependence_relation *); extern void free_dependence_relations (varray_type); extern void free_data_refs (varray_type); -extern void compute_subscript_distance (struct data_dependence_relation *); extern struct data_reference *analyze_array (tree, tree, bool); extern void estimate_iters_using_array (tree, tree); - #endif /* GCC_TREE_DATA_REF_H */ |