aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/misc.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-01-05 13:49:46 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-01-05 13:49:46 +0000
commitccf206491752abc05c608c8475bd925d3969adde (patch)
treecde6570c50283787d3500e8a6cafc99a6cb66f1d /gcc/fortran/misc.c
parent8db2698d1cb49e7f3aed532bb753511071892a64 (diff)
downloadgcc-ccf206491752abc05c608c8475bd925d3969adde.zip
gcc-ccf206491752abc05c608c8475bd925d3969adde.tar.gz
gcc-ccf206491752abc05c608c8475bd925d3969adde.tar.bz2
Revert DECL_USER_ALIGN part of r241959
r241959 included code to stop the vectoriser increasing the alignment of a "user-aligned" variable. This wasn't the main purpose of the patch, but was done for consistency with pass_increase_alignment, and was needed to make the testcase work. The documentation for the aligned attribute says: This attribute specifies a minimum alignment for the variable or structure field, measured in bytes. so I think it's reasonable for the vectoriser to increase the alignment further, if that helps us to vectorise code. It's also useful if the "user" alignment actually came from an earlier pass rather than the source code. A possible counterexample came up when this was discussed on the lists. Users who are trying to collate things from several translation units into a single section can use: __attribute__((section ("whatever"), aligned(N))) and would not want extra padding. It turns out that the supported way of doing that is to add a "used" attribute, which works even when no "aligned" attribute is given. 2018-01-05 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't punt for user-aligned variables. gcc/testsuite/ * gcc.dg/vect/vect-align-4.c: New test. * gcc.dg/vect/vect-nb-iter-ub-2.c (cc): Remove alignment attribute and redefine as a structure with an unaligned member "b". (foo): Update accordingly. From-SVN: r256277
Diffstat (limited to 'gcc/fortran/misc.c')
0 files changed, 0 insertions, 0 deletions