Deleted Added
sdiff udiff text old ( 169690 ) new ( 220150 )
full compact
1/* Analysis Utilities for Loop Vectorization.
2 Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc.
3 Contributed by Dorit Naishlos <dorit@il.ibm.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free

--- 11 unchanged lines hidden (view full) ---

2002110-1301, USA. */
21
22#include "config.h"
23#include "system.h"
24#include "coretypes.h"
25#include "tm.h"
26#include "ggc.h"
27#include "tree.h"
28#include "basic-block.h"
29#include "diagnostic.h"
30#include "tree-flow.h"
31#include "tree-dump.h"
32#include "timevar.h"
33#include "cfgloop.h"
34#include "expr.h"
35#include "optabs.h"

--- 870 unchanged lines hidden (view full) ---

906 if (supportable_dr_alignment != dr_aligned
907 && vect_print_dump_info (REPORT_ALIGNMENT))
908 fprintf (vect_dump, "Vectorizing an unaligned access.");
909 }
910 return true;
911}
912
913
914/* Function vect_enhance_data_refs_alignment
915
916 This pass will use loop versioning and loop peeling in order to enhance
917 the alignment of data references in the loop.
918
919 FOR NOW: we assume that whatever versioning/peeling takes place, only the
920 original loop is to be vectorized; Any other loops that are created by
921 the transformations performed in this pass - are not supposed to be

--- 129 unchanged lines hidden (view full) ---

1051 misaligned store in the loop.
1052 Rationale: misaligned stores are not yet supported.
1053
1054 TODO: Use a cost model. */
1055
1056 for (i = 0; VEC_iterate (data_reference_p, datarefs, i, dr); i++)
1057 if (!DR_IS_READ (dr) && !aligned_access_p (dr))
1058 {
1059 dr0 = dr;
1060 do_peeling = true;
1061 break;
1062 }
1063
1064 /* Often peeling for alignment will require peeling for loop-bound, which in
1065 turn requires that we know how to adjust the loop ivs after the loop. */
1066 if (!vect_can_advance_ivs_p (loop_vinfo))
1067 do_peeling = false;
1068

--- 1034 unchanged lines hidden ---