This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] [4.3 projects] Vectorizer, versioning for alias improvements
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: Victor Kaplansky <VICTORK at il dot ibm dot com>
- Cc: gcc-patches at gnu dot org, Ira Rosen <IRAR at il dot ibm dot com>, rakdver at kam dot mff dot cuni dot cz
- Date: Tue, 11 Sep 2007 17:57:40 +0300
- Subject: Re: [PATCH] [4.3 projects] Vectorizer, versioning for alias improvements
gcc-patches-owner@gcc.gnu.org wrote on 11/09/2007 15:06:42:
> Please find below modified patch. The patch adds a pruning of a list
> of may-alias ddrs. The pruning is done using grouping information
gathered
> by interleaving analysis and occurs after a call to
> vect_analyze_data_ref_accesses.
>
> Bootstrapped PPC and x86_64.
> Regtested on PPC.
> OK for mainline after passing regression on x86_64?
this is ok, just note that in the meantime Harsha's patch that replaces
TARG_COND_BRANCH_COST with TARG_COND_[TAKEN/NOT_TAKEN]_BRANCH_COST went in,
so you'll have to update this bit in your patch:
+ if (VEC_length (tree, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo))
+ || VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)))
+ {
+ vec_outside_cost += TARG_COND_BRANCH_COST;
}
... and since you need to make the above change, I'd appreciate if you
could consider:
1) updating the documentation of vect_analyze_data_ref_dependences
2) changing "vect_vfa_dr_equal" to some better name (maybe something like
"same_range_drs" or "same_group_drs"?)
thanks,
dorit
> -- Victor
>
> 2007-09-11 Victor Kaplansky <victork@il.ibm.com>
>
> ChangeLog:
>
> * tree-vect-analyze.c (vect_vfa_dr_equal): New.
> (vect_vfa_range_equal): New.
> (vect_is_duplicate_ddr): Removed.
> (vect_mark_for_runtime_alias_test): Do not perform marking when
> optimizing for size or max_param for alias checking is zero.
> 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.
> (vect_analyze_data_ref_dependences): Do not call to
> vect_mark_for_runtime_alias_test.
> (vect_prune_runtime_alias_test_list): New.
> (vect_analyze_loop): Add call to
vect_prune_runtime_alias_test_list.
> * 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): Build the base address of data
> reference from DR_GROUP_FIRST_DR.
> (vect_loop_versioning): New.
> (vect_transform_loop): Add a call to vect_loop_versioning.
> Remove factored out code.
>
> (See attached file: vfa2-09.patch.txt)[attachment "vfa2-09.patch.
> txt" deleted by Dorit Nuzman/Haifa/IBM]