Gcc 3.1 performance regressions with respect to 2.95.3

law@redhat.com law@redhat.com
Mon Mar 18 13:10:00 GMT 2002


 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



More information about the Gcc mailing list