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


>>>>> law  writes:

law> Ignore libcalls for a minute and investigate why the scheduler decided to
law> move the clobbers away from the use/def sites.   Something in the scheduler
law> decided this was a profitable thing to do, when in fact it is a very 
law> unprofitable
law> thing to do.  If you can find out why, then you have a handle on how to deal
law> with the performance issue.

	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?

Thanks, David


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