[PATCH] [4.3 projects] Vectorizer, versioning for alias improvements

Victor Kaplansky VICTORK@il.ibm.com
Sun Sep 9 16:16:00 GMT 2007


Hi,

Below is a patch which improves versioning for alias and implements
assorted code cleanups suggested by Dorit in comments to original VFA
patch.
[http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01026.html]

Here is a list of changes:

- Do not perform versioning when optimize for size.
- Do not perform run-time aliasing test when dependency was proven at
  compile time.
- Cost-model updates for case when a run-time tests were added.
- Improved handling of interleaved accesses.  We test only one data
  reference for a whole interleaving group.
- Verified that vect-vfa-03.c checks combination of VFA and interleaved
  accesses.
- Versioning related stuff factored-out from vect_transform_loop.
- vect_vfa_segment_size made more compact by computing vf*step
  out of if-then-else.
- Other minor changes.

Bootstrapped with vectorization enabled on x86_64.
Okay for mainline after boostraping and regression testing
on PPC and x86_64?
-- Victor


2007-09-09  Victor Kaplansky <victork@il.ibm.com>

ChangeLog:

      * tree-vect-analyze.c (vect_drs_of_same_interleaving_group_p)
      New.
      (vect_is_duplicate_ddr) Call to
      vect_drs_of_same_interleaving_group_p instead of operan_equal_p.
      (vect_mark_for_runtime_alias_test) Do not perform marking when
      optimizing for size.  Move the function before
      vect_analyze_data_ref_dependence.
      (vect_analyze_data_ref_dependence) Add call to
      vect_mark_for_runtime_alias_test in two cases when dependence
      is not clear.
      * tree-vect-transform.c (vect_estimate_min_profitable_iters)
      Update vec_outside_cost.
      (vect_vfa_segment_size) More compact code, use TYPE_SIZE_UNIT.
      (vect_create_cond_for_alias_checks) Drop unused parameter.
      Build base as sum of BASE_ADDRESS and OFFSET, do not call to
      vect_create_addr_base_for_vector_ref.
      (vect_loop_versioning) New.
      (vect_transform_loop) Add a call to vect_loop_versioning.
      Remove factored out code.

(See attached file: vfa2-03.patch.txt)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: vfa2-03.patch.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070909/64d8cb2e/attachment.txt>


More information about the Gcc-patches mailing list