aboutsummaryrefslogtreecommitdiff
path: root/gcc/context.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-07-03 13:36:55 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-07-03 13:36:55 +0000
commitbb64297941f34721c7d4e94e754b454086511cf9 (patch)
treeaa95ccdabebcc6989fd1aaff624bf8dbfafbd39b /gcc/context.c
parent832b4117d4068670cc9ed496a7ab06104a12dc00 (diff)
downloadgcc-bb64297941f34721c7d4e94e754b454086511cf9.zip
gcc-bb64297941f34721c7d4e94e754b454086511cf9.tar.gz
gcc-bb64297941f34721c7d4e94e754b454086511cf9.tar.bz2
Add DR_BASE_ALIGNMENT and DR_BASE_MISALIGNMENT
This patch records the base alignment and misalignment in innermost_loop_behavior, to avoid the second-guessing that was previously done in vect_compute_data_ref_alignment. It also makes vect_analyze_data_refs use dr_analyze_innermost, instead of having an almost-copy of the same code. I wasn't sure whether the alignments should be measured in bits (for consistency with most other interfaces) or in bytes (for consistency with DR_ALIGNED_TO, now DR_OFFSET_ALIGNMENT, and with *_ptr_info_alignment). I went for bytes because: - I think in practice most consumers are going to want bytes. E.g. using bytes avoids having to mix TYPE_ALIGN and TYPE_ALIGN_UNIT in vect_compute_data_ref_alignment. - It means that any bit-level paranoia is dealt with when building the innermost_loop_behavior and doesn't get pushed down to consumers. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (innermost_loop_behavior): Add base_alignment and base_misalignment fields. (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros. * tree-data-ref.c: Include builtins.h. (dr_analyze_innermost): Set up the new innmost_loop_behavior fields. * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro. (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise. * tree-vect-data-refs.c: Include tree-cfg.h. (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior fields instead of calculating an alignment here. (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new innermost_loop_behavior fields. From-SVN: r249916
Diffstat (limited to 'gcc/context.c')
0 files changed, 0 insertions, 0 deletions