This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: Machine dependent Tree optimization?
Thanks. Do you mean the TARGET_RTX_COSTS hook? Actually, I already have
made the long int more expensive in TARGET_RTX_COSTS function. It does
have effect for other optimizations (e.g., combine pass), but doesn't
work in the example mentioned in previous example.
if (INTVAL(x) >= 0 && INTVAL(x) <= 255) {
*total = 1;
return true;
}
*total = 4;
return true;
Bingfeng Mei
-----Original Message-----
From: Ian Lance Taylor [mailto:iant@google.com]
Sent: 16 October 2007 15:32
To: Bingfeng Mei
Cc: gcc@gcc.gnu.org
Subject: Re: Machine dependent Tree optimization?
"Bingfeng Mei" <bmei@broadcom.com> writes:
> Of couse, for processors without long/short instructions, this copy
> propagation is benefiical for performance by reducing unnecessary
> dependency. Therefore, whether to apply this copy propagation is
machine
> dependent to some degree.
>
> What I do now is to add some check in tree-ssa-copy.c and
tree-ssa-dom.c
> for our target. But this is not very clean. My question is whether
there
> is better way to implement such machine-dependent tree-level
> optimization (like hooks in RTL level). I believe there are other
> processors that have the similar problem. What is common solution?
This should normally be done at the RTL level by making long constants
more expensive in RTX_COSTS. With luck that will let gcse pick this
up.
Ian