This is the mail archive of the 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: 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 [] 
Sent: 16 October 2007 15:32
To: Bingfeng Mei
Subject: Re: Machine dependent Tree optimization?

"Bingfeng Mei" <> 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
> dependent to some degree.  
> What I do now is to add some check in tree-ssa-copy.c and
> for our target. But this is not very clean. My question is whether
> 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


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