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: Gcc 3.1 performance regressions with respect to 2.95.3


 In message <200203182058.PAA17974@makai.watson.ibm.com>, David Edelsohn 
writes:
 > 	The LIBCALLs look like:
 > 
 > (clobber (reg:DI X)) [LIBCALL]
 > (set (subreg:SI (reg:DI X) 0) ...)
 > (set (subreg:SI (reg:DI X) 4) ...)
 > (set (reg:DI X) (reg:DI X)) [RETVAL]
 > (set ... (reg:DI 312))
 > 
 > So, we have DEF-DEF-DEF-DEF-USE chain.  Is there anything in the scheduler
 > attempting to keep DEF-DEF dependencies near each other?  In some sense is
 > the DEF a "USE" of the CLOBBER?
No there is nothing to do that, nor should there be.  This should be driven
by the cost of the dependency write-write dependency.  If the cost is high, 
then
the two instructions should move away from each other.  If the cost is low,
then they should stay close together.  The costs are derived from the 
scheduling
information in the MD file.

What you need to do is get the cost of the dependency from the scheduler dumps.
jeff


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