diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-14 07:26:52 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-14 07:26:52 +0000 |
commit | 585334d41d1a255f612d6470ba9b7bd383cdd5e4 (patch) | |
tree | e7a306bcc65b98f0ce32db3ed56a02f801a9cc08 /gcc/expr.h | |
parent | 90b72e84c427d4e735ae98dc06fe84fc1ec8139b (diff) | |
download | gcc-585334d41d1a255f612d6470ba9b7bd383cdd5e4.zip gcc-585334d41d1a255f612d6470ba9b7bd383cdd5e4.tar.gz gcc-585334d41d1a255f612d6470ba9b7bd383cdd5e4.tar.bz2 |
re PR middle-end/71310 (Bitfields cause load hit store with smaller store and larger load)
2016-06-14 Richard Biener <rguenther@suse.de>
PR middle-end/71310
PR bootstrap/71510
* expr.h (get_bit_range): Declare.
* expr.c (get_bit_range): Export.
* fold-const.c (optimize_bit_field_compare): Use get_bit_range and
word_mode again to constrain the bitfield access.
From-SVN: r237426
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -242,6 +242,10 @@ extern rtx push_block (rtx, int, int); extern bool emit_push_insn (rtx, machine_mode, tree, rtx, unsigned int, int, rtx, int, rtx, rtx, int, rtx, bool); +/* Extract the accessible bit-range from a COMPONENT_REF. */ +extern void get_bit_range (unsigned HOST_WIDE_INT *, unsigned HOST_WIDE_INT *, + tree, HOST_WIDE_INT *, tree *); + /* Expand an assignment that stores the value of FROM into TO. */ extern void expand_assignment (tree, tree, bool); |