tree-vectorizer.c (vect_get_base_and_offset): Remove.

* tree-vectorizer.c (vect_get_base_and_offset): Remove.
        (vect_is_simple_iv_evolution): Remove redundant parameter
        and step check.
        (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
        without last parameter.
        (vect_analyze_pointer_ref_access): Get access_fn as parameter.
        Return pointer step. Call vect_is_simple_iv_evolution without
        last parameter. Check only that the step is multiple of size
        type. Remove stmt_vinfo updates.
        (vect_get_memtag_and_dr): Remove.
        (vect_get_memtag): New function.
        (vect_address_analysis): New function.
        (vect_object_analysis): New function.
        (vect_analyze_data_refs): Call vect_object_analysis and
        vect_get_memtag. Update stmt_vinfo fields.

From-SVN: r94934
This commit is contained in:
Ira Rosen 2005-02-12 12:57:12 +00:00 committed by Dorit Nuzman
parent e3a8a4eda9
commit 8ad833acc4
4 changed files with 506 additions and 439 deletions

View File

@ -1,3 +1,21 @@
2005-02-12 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c (vect_get_base_and_offset): Remove.
(vect_is_simple_iv_evolution): Remove redundant parameter
and step check.
(vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
without last parameter.
(vect_analyze_pointer_ref_access): Get access_fn as parameter.
Return pointer step. Call vect_is_simple_iv_evolution without
last parameter. Check only that the step is multiple of size
type. Remove stmt_vinfo updates.
(vect_get_memtag_and_dr): Remove.
(vect_get_memtag): New function.
(vect_address_analysis): New function.
(vect_object_analysis): New function.
(vect_analyze_data_refs): Call vect_object_analysis and
vect_get_memtag. Update stmt_vinfo fields.
2005-02-12 Ira Rosen <irar@il.ibm.com>
* tree-data-ref.c (array_base_name_differ_p): Check that the bases

View File

@ -1,3 +1,7 @@
2005-02-12 Ira Rosen <irar@il.ibm.com>
* gcc.dg/vect/vect-97.c: New test.
2005-02-12 Ira Rosen <irar@il.ibm.com>
* gcc.dg/vect/vect-96.c: New test.

View File

@ -0,0 +1,58 @@
/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include "tree-vect.h"
typedef char achar __attribute__ ((__aligned__(16)));
#define N 16
int main1 ()
{
struct {
achar *p;
achar *q;
} s;
int i;
achar x[N];
achar cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
s.p = x;
for (i = 0; i < N; i++)
{
s.p[i] = cb[i];
}
/* check results: */
for (i = 0; i < N; i++)
{
if (s.p[i] != cb[i])
abort ();
}
s.q = cb;
for (i = 0; i < N; i++)
{
s.p[i] = s.q[i];
}
/* check results: */
for (i = 0; i < N; i++)
{
if (s.p[i] != s.q[i])
abort ();
}
return 0;
}
int main (void)
{
check_vect ();
return main1 ();
}
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */

File diff suppressed because it is too large Load Diff