Message ID | 5C2EC229-6322-4263-B4FE-6C06EEC946A9@comcast.net |
---|---|
State | New |
Headers | show |
On Thu, Jan 2, 2014 at 5:12 AM, Mike Stump <mikestump@comcast.net> wrote: > On Nov 23, 2013, at 11:22 AM, Mike Stump <mikestump@comcast.net> wrote: >> Richi has asked the we break the wide-int patch so that the individual port and front end maintainers can review their parts without have to go through the entire patch. This patch covers the ipa code. >> >> Ok? > > Ping? > > I promise, this patch isn't frightening. Small, easy to read and understand, doesn't require an ipa expert. Why @@ -968,7 +968,7 @@ get_polymorphic_call_info (tree fndecl, { base_pointer = TREE_OPERAND (base, 0); context->offset - += offset2 + mem_ref_offset (base).low * BITS_PER_UNIT; + += offset2 + mem_ref_offset (base).ulow () * BITS_PER_UNIT; context->outer_type = NULL; } /* We found base object. In this case the outer_type but then @@ -1063,7 +1063,7 @@ compute_complex_assign_jump_func (struct ipa_node_params *info, || max_size == -1 || max_size != size) return; - offset += mem_ref_offset (base).low * BITS_PER_UNIT; + offset += mem_ref_offset (base).to_short_addr () * BITS_PER_UNIT; ssa = TREE_OPERAND (base, 0); if (TREE_CODE (ssa) != SSA_NAME || !SSA_NAME_IS_DEFAULT_DEF (ssa) ? I think it should be to_short_addr () in the first case as well. Ok with that change. Richard. >
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index 38cf378..41e5300 100644 --- a/gcc/ipa-devirt.c +++ b/gcc/ipa-devirt.c @@ -968,7 +968,7 @@ get_polymorphic_call_info (tree fndecl, { base_pointer = TREE_OPERAND (base, 0); context->offset - += offset2 + mem_ref_offset (base).low * BITS_PER_UNIT; + += offset2 + mem_ref_offset (base).ulow () * BITS_PER_UNIT; context->outer_type = NULL; } /* We found base object. In this case the outer_type diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index d122dd5..3953442 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -1063,7 +1063,7 @@ compute_complex_assign_jump_func (struct ipa_node_params *info, || max_size == -1 || max_size != size) return; - offset += mem_ref_offset (base).low * BITS_PER_UNIT; + offset += mem_ref_offset (base).to_short_addr () * BITS_PER_UNIT; ssa = TREE_OPERAND (base, 0); if (TREE_CODE (ssa) != SSA_NAME || !SSA_NAME_IS_DEFAULT_DEF (ssa) @@ -1122,7 +1122,7 @@ get_ancestor_addr_info (gimple assign, tree *obj_p, HOST_WIDE_INT *offset) || TREE_CODE (SSA_NAME_VAR (parm)) != PARM_DECL) return NULL_TREE; - *offset += mem_ref_offset (expr).low * BITS_PER_UNIT; + *offset += mem_ref_offset (expr).to_short_addr () * BITS_PER_UNIT; *obj_p = obj; return expr; } @@ -3661,9 +3661,8 @@ ipa_modify_call_arguments (struct cgraph_edge *cs, gimple stmt, if (TYPE_ALIGN (type) > align) align = TYPE_ALIGN (type); } - misalign += (tree_to_double_int (off) - .sext (TYPE_PRECISION (TREE_TYPE (off))).low - * BITS_PER_UNIT); + misalign += (offset_int::from (off, SIGNED) + * BITS_PER_UNIT).to_short_addr (); misalign = misalign & (align - 1); if (misalign != 0) align = (misalign & -misalign);