[Bug rtl-optimization/18401] [4.0.0 Regression] Bootstrap failure on all ARM targets due to incorrect GCSE
rearnsha at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Jan 5 19:00:00 GMT 2005
------- 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 <dvorakz@suse.cz>
* 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
More information about the Gcc-bugs
mailing list