This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Vectorizer: bug fix for multidimensional array support
- From: Ira Rosen <IRAR at il dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Dorit Naishlos <DORIT at il dot ibm dot com>
- Date: Sun, 31 Oct 2004 14:18:27 +0200
- Subject: Re: [patch] Vectorizer: bug fix for multidimensional array support
I am rewriting this patch with the help of get_inner_reference.
Ira
Ira
Rosen/Haifa/IBM
To
12/10/2004 15:10 gcc-patches@gcc.gnu.org
cc
Dorit Naishlos/Haifa/IBM@IBMIL
Subject
[patch] Vectorizer: bug fix for
multidimensional array support
This patch fixes a bug in the vectorization support for multidimensional
arrays. The vectorizer constructs a reference to the first location that is
accessed in the loop, but does so using wrong index values - the
initial_condition of the access_function of each index should be used,
because the index could be defined in the loop (as demonstrated in the
attached testcase; it needs Devang's "AV - Use distance vector" patch
though to be vectorized).
Bootstrapped and tested on ppc-darwin. O.K. for mainline?
Ira
Changelog entry:
2004-10-12 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_create_array_access_at_loop_preheader):
New function.
(vect_create_addr_base_for_vector_ref): Call
vect_create_array_access_at_loop_preheader.
(vect_is_simple_iv_evolution): Call unshare_expr.
Patch:
[attachment "diff_md.oct12" deleted by Ira Rosen/Haifa/IBM]
Testcase:
[attachment "vect-81.c" deleted by Ira Rosen/Haifa/IBM]