aboutsummaryrefslogtreecommitdiff
path: root/gcc/dse.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-01-19 13:34:45 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-01-19 13:34:45 +0100
commit569efc34ebc4f0a01d435dc11c3146b5442132cd (patch)
tree75a7d1ce1a175bc96655f4cf67f8ea84e0f07f16 /gcc/dse.c
parente49d321f033c35d907d9d3eb339efaa6a8ba1e52 (diff)
downloadgcc-569efc34ebc4f0a01d435dc11c3146b5442132cd.zip
gcc-569efc34ebc4f0a01d435dc11c3146b5442132cd.tar.gz
gcc-569efc34ebc4f0a01d435dc11c3146b5442132cd.tar.bz2
re PR rtl-optimization/68955 (wrong code at -O3 on x86-64-linux-gnu in 32-bit mode)
PR rtl-optimization/68955 PR rtl-optimization/64557 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr here. Fix up formatting. * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P. * gcc.dg/torture/pr68955.c: New test. From-SVN: r232554
Diffstat (limited to 'gcc/dse.c')
-rw-r--r--gcc/dse.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/gcc/dse.c b/gcc/dse.c
index 7dc0b8a..99f23ca 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -1515,14 +1515,9 @@ record_store (rtx body, bb_info_t bb_info)
mem_addr = base->val_rtx;
else
{
- group_info *group
- = rtx_group_vec[group_id];
+ group_info *group = rtx_group_vec[group_id];
mem_addr = group->canon_base_addr;
}
- /* get_addr can only handle VALUE but cannot handle expr like:
- VALUE + OFFSET, so call get_addr to get original addr for
- mem_addr before plus_constant. */
- mem_addr = get_addr (mem_addr);
if (offset)
mem_addr = plus_constant (get_address_mode (mem), mem_addr, offset);
}
@@ -2128,14 +2123,9 @@ check_mem_read_rtx (rtx *loc, bb_info_t bb_info)
mem_addr = base->val_rtx;
else
{
- group_info *group
- = rtx_group_vec[group_id];
+ group_info *group = rtx_group_vec[group_id];
mem_addr = group->canon_base_addr;
}
- /* get_addr can only handle VALUE but cannot handle expr like:
- VALUE + OFFSET, so call get_addr to get original addr for
- mem_addr before plus_constant. */
- mem_addr = get_addr (mem_addr);
if (offset)
mem_addr = plus_constant (get_address_mode (mem), mem_addr, offset);
}