------- Additional Comments From rearnsha at gcc dot gnu dot org  2005-01-05 
19:00 -------
It went away after this patch:

2004-11-10  Zdenek Dvorak  <[EMAIL PROTECTED]>

        * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
        right order.
        (force_var_cost): Determine cost of addition and multiplication more
        precisely.
        (get_computation_cost_at): Add cost for computing address elements to
        the final cost.

        * fold-const.c (fold): Attempt to use ptr_difference_const whenever
        one of the arguments of MINUS_EXPR is an address.
        (split_address_to_core_and_offset): New function.
        (ptr_difference_const): Handle case when one of the operands is a
        pointer.
        * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
        (ptr_difference_cost): Pass addresses instead of objects to
        ptr_difference_const.

So I suspect it might have gone latent again, but it might be that it was fixed
by the canonicalization change to get_address_cost and that the problem can only
occur with RTL that is not in correct canonical form.

For reference here are the links to the two patch proposals:

http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00610.html
http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00715.html

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18401

Reply via email to