aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-03-20 11:01:13 +0100
committerMartin Liska <mliska@suse.cz>2020-03-20 11:01:13 +0100
commit7d4549b2cd209eb621453ce13be7ffd84ffa720a (patch)
treef85983d269003a49f0b6bef1f68261d17ceec5f9
parent8fefa21fcf67f30c467eb3cb73d09cb96d0ea6a8 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/ipa-cp.c5
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;