diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-03-31 20:52:41 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2011-03-31 20:52:41 +0000 |
commit | 490d53a8c0f0727841fe1ba29c1e576c51aac458 (patch) | |
tree | d430c1e0cfadd9de02789a9bea82ab916411352a /gcc/tree-ssa-pre.c | |
parent | 0b6e66d72941512f21b3e0ee0268abbcee9cf786 (diff) |
* tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
a zero minimum index only if it is redundant.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@171800 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 0a6fa9455de..e59a598348b 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -2874,8 +2874,11 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref, return NULL_TREE; if (genop2) { - /* Drop zero minimum index. */ - if (tree_int_cst_equal (genop2, integer_zero_node)) + tree domain_type = TYPE_DOMAIN (TREE_TYPE (genop0)); + /* Drop zero minimum index if redundant. */ + if (integer_zerop (genop2) + && (!domain_type + || integer_zerop (TYPE_MIN_VALUE (domain_type)))) genop2 = NULL_TREE; else { |