diff options
author | Richard Guenther <rguenther@suse.de> | 2010-08-25 10:03:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-08-25 10:03:19 +0000 |
commit | 9407f6bcfba46e815e8b5b2ea9e1be9cb8c4df79 (patch) | |
tree | b8cfc730f4a1e716803f11de698d3e20898c13e2 /gcc | |
parent | ca046f7f4eafcfbcdb11a714ff93c8340f6ee0f7 (diff) | |
download | gcc-9407f6bcfba46e815e8b5b2ea9e1be9cb8c4df79.zip gcc-9407f6bcfba46e815e8b5b2ea9e1be9cb8c4df79.tar.gz gcc-9407f6bcfba46e815e8b5b2ea9e1be9cb8c4df79.tar.bz2 |
re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278)
2010-08-25 Richard Guenther <rguenther@suse.de>
PR middle-end/45379
* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
TARGET_MEM_REF in alignment computation.
From-SVN: r163540
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 28a831a..f9a6082 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-25 Richard Guenther <rguenther@suse.de> + + PR middle-end/45379 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle + TARGET_MEM_REF in alignment computation. + 2010-08-25 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/45059 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 9f96abf..2993c93 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1615,6 +1615,11 @@ set_mem_attributes_minus_bitpos (rtx ref, tree t, int objectp, align = MAX (align, TYPE_ALIGN (type)); } + else if (TREE_CODE (t) == TARGET_MEM_REF) + /* ??? This isn't fully correct, we can't set the alignment from the + type in all cases. */ + align = MAX (align, TYPE_ALIGN (type)); + else if (TREE_CODE (t) == MISALIGNED_INDIRECT_REF) { if (integer_zerop (TREE_OPERAND (t, 1))) |