This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IVOPT improvement patch


On Thu, Jul 29, 2010 at 6:00 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Jul 29, 2010 at 8:22 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Wed, Jul 28, 2010 at 9:32 PM, Xinliang David Li <davidxl@google.com> wrote:
>>> The attached patch should fix the problem -- it reverts a small part
>>> of the last patch that is needed for fixing sixtrack performance
>>> regression caused by wrong iv-use costs because address offset range
>>> is conservatively computed. I will revert the change first and
>>> investigate better fix (Suggestions are welcome).
>>>
>>
>> Since "gcc -m32" works on Linux/x86-64 and goes into an infinite loop,
>> it sounds like a HOST_WIDE_INT issue.
>>
>
> This patch fixed the infinite loop.

That doesn't make sense.  Please use double_ints instead.

Richard.

>
> --
> H.J.
> diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
> index 519f66e..44f2eb2 100644
> --- a/gcc/tree-ssa-loop-ivopts.c
> +++ b/gcc/tree-ssa-loop-ivopts.c
> @@ -3207,7 +3207,7 @@ multiplier_allowed_in_address_p (HOST_WIDE_INT
> ratio, enum machine_mode mode,
>
> ?typedef struct
> ?{
> - ?HOST_WIDE_INT min_offset, max_offset;
> + ?HOST_WIDEST_INT min_offset, max_offset;
> ? unsigned costs[2][2][2][2];
> ?} *address_cost_data;
>
> @@ -3240,9 +3240,9 @@ get_address_cost (bool symbol_present, bool var_present,
> ? data = VEC_index (address_cost_data, address_cost_data_list, data_index);
> ? if (!data)
> ? ? {
> - ? ? ?HOST_WIDE_INT i;
> - ? ? ?HOST_WIDE_INT start = BIGGEST_ALIGNMENT / BITS_PER_UNIT;
> - ? ? ?HOST_WIDE_INT rat, off;
> + ? ? ?HOST_WIDEST_INT i;
> + ? ? ?HOST_WIDEST_INT start = BIGGEST_ALIGNMENT / BITS_PER_UNIT;
> + ? ? ?HOST_WIDEST_INT rat, off;
> ? ? ? int old_cse_not_expected, width;
> ? ? ? unsigned sym_p, var_p, off_p, rat_p, add_c;
> ? ? ? rtx seq, addr, base;
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]