diff options
author | Martin Liska <mliska@suse.cz> | 2020-03-20 11:01:13 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-03-20 11:01:13 +0100 |
commit | 7d4549b2cd209eb621453ce13be7ffd84ffa720a (patch) | |
tree | f85983d269003a49f0b6bef1f68261d17ceec5f9 | |
parent | 8fefa21fcf67f30c467eb3cb73d09cb96d0ea6a8 (diff) | |
download | gcc-7d4549b2cd209eb621453ce13be7ffd84ffa720a.zip gcc-7d4549b2cd209eb621453ce13be7ffd84ffa720a.tar.gz gcc-7d4549b2cd209eb621453ce13be7ffd84ffa720a.tar.bz2 |
Fix correct offset in ipa_get_jf_ancestor_result.
PR ipa/94232
* ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
build_ref_for_offset function was used and it transforms off to bytes
from bits.
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-cp.c | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 563be35..c7b33258 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2020-03-20 Martin Liska <mliska@suse.cz> + + PR ipa/94232 + * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously + build_ref_for_offset function was used and it transforms off to bytes + from bits. + 2020-03-20 Richard Biener <rguenther@suse.de> PR tree-optimization/94266 diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index 1c17010..c64e910 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -1356,9 +1356,10 @@ ipa_get_jf_ancestor_result (struct ipa_jump_func *jfunc, tree input) poly_int64 off = ipa_get_jf_ancestor_offset (jfunc); if (known_eq (off, 0)) return input; + poly_int64 byte_offset = exact_div (off, BITS_PER_UNIT); return build1 (ADDR_EXPR, TREE_TYPE (input), - fold_build2 (MEM_REF, TREE_TYPE (TREE_TYPE (input)), - input, build_int_cst (ptr_type_node, off))); + fold_build2 (MEM_REF, TREE_TYPE (TREE_TYPE (input)), input, + build_int_cst (ptr_type_node, byte_offset))); } else return NULL_TREE; |