aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-analyze.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2007-05-13 19:32:06 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2007-05-13 17:32:06 +0000
commit3cb960c703ec1fbbd2c0b9f821dc957a56aa5d00 (patch)
treed3a44fcfca4c6958e58886fcdc3c433a567cf1a8 /gcc/tree-vect-analyze.c
parentde5e4138e587135467706f2c6d3d450aca8c2389 (diff)
downloadgcc-3cb960c703ec1fbbd2c0b9f821dc957a56aa5d00.zip
gcc-3cb960c703ec1fbbd2c0b9f821dc957a56aa5d00.tar.gz
gcc-3cb960c703ec1fbbd2c0b9f821dc957a56aa5d00.tar.bz2
tree-scalar-evolution.c (resolve_mixers): Exported.
* tree-scalar-evolution.c (resolve_mixers): Exported. * tree-scalar-evolution.h (resolve_mixers): Declare. * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p, ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, record_record_differ_p, record_array_differ_p, array_ptr_differ_p, base_object_differ_p, base_addr_differ_p, analyze_array_indexes, init_array_ref, init_pointer_ref, analyze_indirect_ref, strip_conversion, analyze_offset_expr, address_analysis, object_analysis, analyze_offset): Removed. (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias, split_constant_offset, canonicalize_base_object_address, object_address_invariant_in_loop_p, disjoint_objects_p, dr_may_alias_p, dr_address_invariant_p): New functions. (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices and dr_analyze_alias. (initialize_data_dependence_relation): Use dr_may_alias_p and object_address_invariant_in_loop_p. (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr) is chrec_dont_know. (find_data_references_in_stmt): Restrict the analysis of data references to the given loop nest. (find_data_references_in_loop): Made static. Pass loop nest to find_data_references_in_stmt. (compute_data_dependences_for_loop): Use DR_VOPS. (free_data_ref): Free DR_VOPS. * tree-data-ref.h (struct first_location_in_loop): Replaced by ... (struct innermost_loop_behavior): ... new. (struct base_object_info): Replaced by ... (struct indices): ... new. (struct dr_alias): New. (enum data_ref_type): Removed. (struct data_reference): Consist of struct innermost_loop_behavior, struct indices and struct dr_alias. (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed. (DR_MEMTAG): Renamed to ... (DR_SYMBOL_TAG): ... this. (find_data_references_in_loop): Declaration removed. * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL. (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG. * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. * gcc.dg/vect/no-section-anchors-vect-69.c: Fix outcome. * gcc.dg/tree-ssa/loop-30.c: New test. From-SVN: r124655
Diffstat (limited to 'gcc/tree-vect-analyze.c')
-rw-r--r--gcc/tree-vect-analyze.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c
index 3a4841d..f928973 100644
--- a/gcc/tree-vect-analyze.c
+++ b/gcc/tree-vect-analyze.c
@@ -1130,15 +1130,14 @@ vect_compute_data_ref_alignment (struct data_reference *dr)
/* Initialize misalignment to unknown. */
DR_MISALIGNMENT (dr) = -1;
- misalign = DR_OFFSET_MISALIGNMENT (dr);
+ misalign = DR_INIT (dr);
aligned_to = DR_ALIGNED_TO (dr);
base_addr = DR_BASE_ADDRESS (dr);
base = build_fold_indirect_ref (base_addr);
vectype = STMT_VINFO_VECTYPE (stmt_info);
alignment = ssize_int (TYPE_ALIGN (vectype)/BITS_PER_UNIT);
- if ((aligned_to && tree_int_cst_compare (aligned_to, alignment) < 0)
- || !misalign)
+ if (tree_int_cst_compare (aligned_to, alignment) < 0)
{
if (vect_print_dump_info (REPORT_DETAILS))
{
@@ -2044,7 +2043,7 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
}
return false;
}
- if (!DR_MEMTAG (dr))
+ if (!DR_SYMBOL_TAG (dr))
{
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS))
{