aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-06-14 07:26:52 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-06-14 07:26:52 +0000
commit585334d41d1a255f612d6470ba9b7bd383cdd5e4 (patch)
treee7a306bcc65b98f0ce32db3ed56a02f801a9cc08 /gcc/expr.h
parent90b72e84c427d4e735ae98dc06fe84fc1ec8139b (diff)
downloadgcc-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.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index bd0da5e..a77f6e5 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -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);