This is the mail archive of the gcc@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: 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



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